第1版 完美C++教程


第1版 完美C++教程

文章插图
完美C++教程(第1版)【第1版 完美C++教程】《完美C++教程(第1版)》是2005年清华大学出版社出版的图书,作者是Walter Savitch 。
基本介绍书名:完美C++教程(第1版)
又名:C++教程
作者:Walter Savitch
原版名称:完美C++教程
ISBN:9787302111856
类别:计算机编程
定价:78元
出版社:清华大学
出版时间:2005-7-29
装帧:平装
开本:26cm
内容简介完整和全面的可执行程式,以说明C++语言的特性 。全面介绍了标準模板库(STL)——它是理解C++语言的必需要素,因为它体现了这种语言丰富的功能性和多样性 。编辑推荐《完美C++教程》是畅销书作者Walter Savitch撰写的一本关于C++的权威性教材 。这本崭新的图书对C++程式语言提供了完整的、全面的和完美的介绍 。《完美C++教程》为那些希望掌握C++的经验丰富的程式设计师或者初学者都提供了全部必要的工具,特彆强调了这种语言在基本编程技巧方面的品质和複杂性 。目录第1章C++基础11.1C++简介11.1.1C++语言的起源11.1.2C++与面向对象的程式设计21.1.3C++特点21.1.4C++术语21.1.5C++程式示例21.2变数、表达式及赋值语句41.2.1标识符41.2.2变数51.2.3赋值语句71.2.4更多赋值语句91.2.5赋值兼容性101.2.6文字常量111.2.7转义序列121.2.8名字常量131.2.9算术操作符和表达式141.2.10整数和浮点数除法151.2.11类型转换171.2.12自增和自减操作符191.3控制台输入/输出211.3.1使用cout输出221.3.2输出时的换行221.3.3格式化带小数点的数字231.3.4用cerr输出251.3.5用cin输入251.4程式的风格27注释271.5库与名字空间281.5.1库及include命令281.5.2名字空间28第2章流程控制342.1布尔表达式342.1.1创建布尔表达式342.1.2布尔表达式求值362.1.3优先权原则372.2分支机制412.2.1ifelse语句412.2.2複合语句432.2.3省略else452.2.4嵌套语句452.2.5多分支ifelse语句462.2.6switch语句472.2.7枚举类型502.2.8条件操作符502.3循环512.3.1while和dowhile语句512.3.2再谈增量、减量操作符542.3.3逗号操作符562.3.4for语句572.3.5break与continue语句632.3.6嵌套循环66第3章函式基础723.1预定义的函式723.1.1返回值的预定义函式723.1.2预定义的void函式763.1.3随机数生成器783.2程式设计师定义的函式813.2.1定义返回值的函式813.2.2函式声明的替代形式843.2.3调用函式的函式843.2.4返回布尔值的函式873.2.5定义void函式883.2.6void函式中的return语句893.2.7前提条件和执行结果913.2.8main函式913.2.9递归函式923.3作用域规则933.3.1局部变数933.3.2过程抽象953.3.3全局常量与全局变数963.3.4语句块983.3.5嵌套作用域993.3.6for循环中声明的变数99第4章参数与重载1064.1参数1064.1.1传值调用参数1064.1.2引用调用参数初步1084.1.3引用调用机制详解1114.1.4常量引用参数1134.1.5混合参数列表1144.2重载与默认实参1214.2.1重载简介1214.2.2分辨重载的準则1254.2.3默认实参1284.3测试及调试函式1304.3.1assert宏1304.3.2占位程式和驱动程式131第5章数组1385.1数组简介1385.1.1数组的声明和引用1385.1.2记忆体中的数组1425.1.3数组的初始化1445.2函式中的数组1465.2.1作为函式实参的索引变数1465.2.2整个数组作为函式实参1475.2.3const参数修饰词1505.2.4返回一个数组的函式1525.3用数组编程157部分填充的数组1575.4多维数组1675.4.1多维数组基础1675.4.2多维数组参数168第6章结构和类1826.1结构1826.1.1结构类型1846.1.2结构作为函式参数1876.1.3结构的初始化1906.2类1936.2.1定义类和成员函式1936.2.2封装1986.2.3公有和私有成员1996.2.4取值和赋值函式2026.2.5结构和类206第7章构造函式及其他工具2117.1构造函式2117.1.1构造函式的定义2117.1.2构造函式的显式调用2177.1.3类类型成员变数2267.2其他工具2297.2.1const参数修饰符2297.2.2内联函式2357.2.3静态成员2367.2.4嵌套类和局部类定义2407.3向量——标準模板库预览2407.3.1向量基础2417.3.2效率问题244第8章操作符重载、友元和引用2498.1基本操作符重载2498.1.1重载基础2498.1.2返回常量类型2568.1.3重载一元操作符2598.1.4作为成员函式的操作符重载2608.1.5重载函式调用符()2638.2友元函式和自动类型转换2638.2.1构造函式的自动类型转换2638.2.2友元函式2658.2.3友元类2698.3引用和其他操作符重载2698.3.1引用2708.3.2重载“<<”和“>>”2718.3.3赋值操作符2808.3.4重载自增和自减操作符2808.3.5重载数组操作符[]2838.3.6基于左值和右值的重载285第9章字元串2919.1数组类型的字元串2919.1.1C字元串值和C字元串变数2919.1.2库中的其他函式2969.1.3C字元串的输入和输出2999.2字元操作工具3019.2.1字元输入/输出3019.2.2成员函式get和put3029.2.3成员函式putback、peek和ignore3079.2.4字元操作函式3099.3标準string类3129.3.1标準类string简介3129.3.2string类的输入/输出3149.3.3使用string类进行字元串处理3199.3.4string类对象和C字元串的相互转换326第10章指针和动态数组33410.1指针33410.1.1指针变数33510.1.2记忆体管理基础34110.1.3动态变数和自动变数34410.1.4指针的套用34810.2动态数组34810.2.1数组变数和指针变数34810.2.2创建和使用动态数组35010.2.3指针运算35510.2.4多维动态数组35610.3类、指针和动态数组35810.3.1->操作符35810.3.2this指针35910.3.3重载赋值操作符36010.3.4析构函式36910.3.5複製构造函式370第11章分散编译和名字空间37811.1分散编译37811.1.1封装回顾37811.1.2头档案和实现档案37911.1.3使用#ifndef38811.2名字空间39111.2.1名字空间和using命令39111.2.2创建一个名字空间39311.2.3using声明39611.2.4限定名字39711.2.5未命名的名字空间40111.2.6嵌套名字空间408第12章流和档案I/O操作41512.1I/O流41512.1.1档案I/O41612.1.2向档案中添加内容41912.1.3字元I/O42512.1.4档案末尾检查42512.2流I/O的工具42912.2.1档案名称作为输入42912.2.2使用流函式对输出格式化43012.2.3操作运算元(Manipulators)43312.2.4保存设定的标记43412.2.5其他的输出流成员函式43412.3流的层次:继承的简要介绍44112.4随机档案存取446第13章递归45513.1递归void函式45513.1.1一个递归调用的跟蹤45813.1.2递归的进一步认识46013.1.3递归调用的栈46313.1.4递归与叠代的比较46413.2有返回值的递归函式466有返回值的递归函式的一般形式46613.3按递归的方式思考问题47013.3.1递归设计技术47013.3.2二分查找47213.3.3编码47413.3.4检查递归的正确性47613.3.5效率477第14章继承48614.1继承基础48614.1.1派生类486 14.1.2派生类的构造函式49514.1.3protected限定词49814.1.4成员函式的重定义50114.1.5重定义与重载50214.1.6访问重定义函式的基类版本50314.1.7不可继承的函式50414.2使用继承进行编程50514.2.1派生类中的赋值操作符和複製构造函式50514.2.2派生类的析构函式50614.2.3保护继承和私有继承51814.2.4多继承519第15章多态与虚函式52415.1虚函式基础52415.1.1后绑定52415.1.2C++中的虚函式52515.1.3抽象类和纯虚函式53215.2指针和虚函式53515.2.1虚函式和扩展类型兼容性53515.2.2向下转换和向上转换54115.2.3C++是如何实现虚函式543第16章模板54616.1函式模板546定义函式模板的语法54716.2类模板55816.2.1类模板的语法55816.2.2C++中的模板类vector和basic_stirng56816.3模板和继承568第17章链式数据结构57917.1节点和鍊表57917.1.1节点58017.1.2鍊表58417.1.3向鍊表头插入一个节点58517.1.4向鍊表中插入或移除节点58917.1.5搜寻鍊表59217.2鍊表的套用59917.3叠代器61117.3.1指针作为叠代器61217.3.2叠代器类61217.4树619树的性质619第18章异常处理63618.1异常处理基础63618.1.1异常处理的一个样例63718.1.2自定义异常类64418.1.3多重抛出和捕获64618.1.4在函式中抛出异常64918.1.5异常说明651182异常处理的编程技术65418.2.1抛出异常的时机65418.2.2异常类的层次结构65618.2.3测试可用记忆体65718.2.4再次抛出异常657第19章标準模板库66019.1叠代器66119.1.1叠代器基础66119.1.2叠代器的种类66519.1.3常量和可变叠代器66919.1.4反向叠代器67019.1.5其他几种叠代器67219.2容器67319.2.1连续容器67319.2.2容器适配器栈和伫列67819.2.3关联容器集合和映射68119.2.4效率68519.3泛型算法68519.3.1运行时间和BigO记法68619.3.2容器访问运行时间68919.3.3不改变序列的算法69019.3.4改变序列的算法69419.3.5集合算法69519.3.6排序算法697 第20章模式和UML70320.1模式70320.1.1适配器模式70420.1.2模型视图控制器模式70420.1.3排序模式的效率71020.1.4模式形式体系71220.2UML71320.2.1UML的历史71320.2.2UML的类图表71420.2.3类的相互作用714附录1C++关键字718附录2操作符优先权719附录3ASCII字元集721附录4一些库函式722附录5旧的和新的头档案728