本书是学习C++的实例入门教程。书中内容包括C++的基础知识:表达式、变量、函数、数组、类、库等,并从面向对象的视角讲述C++。本书的最大特点是以实例来讲解知识点,读者可以从大量的实际例子代码中理解、掌握并应用C++的各个知识点。学习语言的最好方式是借助实例来体会和锻炼,这是本书作者推崇并身体力行的学习理念。附带光盘包含本书的所有实例代码、部分项目文件以及一些编译器和有用工具。\r\n 本书结构、条理清晰,语言通俗易懂,提供的实例代码详尽,并具有可操作性强、实用价值高的特点,适于初学者使用。
第一部分 C++基础\r\n\r\n第1章 表达式和变量\r\n\r\n1.1 将C++用做计算器\r\n1.2 数字类型\r\n1.2.1 浮点数\r\n1.2.2 整数\r\n1.3 变量\r\n1.3.1 声明\r\n1.3.2 给变量赋值\r\n1.4 常量:const和enum\r\n1.4.1 使用const声明\r\n1.4.2 使用列举\r\n1.5 运算符和简化表示\r\n1.5.1 除法和余数\r\n1.5.2 逻辑运算符\r\n1.5.3 简化表示\r\n1.6 字符串\r\n1.6.1 string类型\r\n1.6.2 连接字符串\r\n1.6.3 查找和截取子串\r\n1.7 输入和输出\r\n1.7.1 向cout写\r\n1.7.2 从cin读取\r\n1.7.3 写和读文件\r\n1.7.4 从字符串中读\r\n1.8 下文预告\r\n\r\n第2章 函数和控制语句\r\n\r\n2.1 定义自己的函数\r\n2.1.1 数的平方\r\n2.1.2 函数解析\r\n2.1.3 没有返回值的函数\r\n2.1.4 函数的副作用\r\n2.2 控制语句\r\n2.2.1 if-else语句\r\n2.2.2 块\r\n2.2.3 while和do-while语句\r\n2.2.4 for语句\r\n2.2.5 switch语句\r\n2.3 范围\r\n2.3.1 全局变量\r\n2.3.2 局部变量\r\n2.4 实例研究:调试和故障跟踪系统\r\n2.4.1 说明\r\n2.4.2 自顶向下设计\r\n2.4.3 自底向上编码\r\n2.4.4 添加错误报告\r\n2.4.5 丢弃错误文件\r\n2.4.6 显示报告\r\n2.4.7 组合程序\r\n2.5 下文预告\r\n\r\n第3章 教组与算法\r\n\r\n3.1 数组\r\n3.1.1 作为值表的数组\r\n3.1.2 初始化数组\r\n3.1.3 向函数传递数组\r\n3.1.4 读取数组\r\n3.1.5 查找\r\n3.1.6 插入\r\n3.1.7 排序\r\n3.2 容器\r\n3.2.1 大小可调的数组:std::vector\r\n3.2.2 链接列表:std::list\r\n3.2.3 结合数组:std::map\r\n3.2.4 堆栈和队列\r\n3.3 迭代器\r\n3.3.1 通过容器的迭代\r\n3.3.2 查找项\r\n3.3.3 删除和插入\r\n3.4 实例研究:计算简单的统计表\r\n3.5 实例研究:柱状图\r\n3.5.1 柱状图的两个方法\r\n3.6 下文预告\r\n\r\n第4章 程序与库\r\n\r\n4.1 头文件\r\n4.1.1 库\r\n4.1.2 字符归类\r\n4.2 程序\r\n4.2.1 main函数\r\n4.2.2 编译第一个程序\r\n4.2.3 独立编译\r\n4.3 名字空间\r\n4.3.1 全局名字空间\r\n4.3.2 类似函数放置在同一名字空间\r\n4.3.3 std名字空间\r\n4.4 防御性编程\r\n4.4.1 防弹程序\r\n4.4.2 捕获异常\r\n4.4.3 抛出异常\r\n4.5 实例研究:颠倒式波兰计算器\r\n4.5.1 使用堆栈\r\n4.5.2 向RP添加错误检查\r\n4.6 下文预告\r\n\r\n第5章 结构与指针\r\n\r\n5.1 用户定义的结构\r\n5.1.1 仅有数组是不够的\r\n5.1.2 定义新类型\r\n5.2 向函数传递结构\r\n5.2.1 用结构取代大量参数\r\n5.2.2 按值传递结构\r\n5.2.3 引用类型\r\n5.2.4 const引用\r\n5.3 结构数组\r\n5.3.1 简单数组\r\n5.3.2 结构列表和向量\r\n5.4 指针\r\n5.4.1 用做引用的指针\r\n5.4.2 指针指向什么\r\n5.4.3 NULL指针\r\n5.4.4 将结构写入二进制文件\r\n5.4.5 用new和delete分配内存\r\n5.5 实例研究:再看错误跟踪程序\r\n5.5.1 二进制文件:易读而且易写\r\n5.5.2 有关用户\r\n5.5.3 写字符串\r\n5.5.4 实用程序接口\r\n5.5.5 扩展\r\n5.6 下文预告\r\n\r\n第6章 重载函数和运算符\r\n\r\n6.1 参数的默认值\r\n6.2 重载函数\r\n6.2.1 sqr()\r\n6.2.2 同样操作的不同参数\r\n6.2.3 将默认值作为另一种选择\r\n6.3 重载运算符\r\n6.3.1 加和两个指针\r\n6.3.2 运算符函数\r\n6.3.3 重载<<和>>\r\n6.4 递归\r\n6.4.1 另一种二进制查找\r\n6.4.2 为什么阶乘并不“酷”\r\n6.4.3 用龟标画树\r\n6.5 函数指针\r\n6.6 实例研究:使用龟图绘制图形\r\n6.6.1 说明\r\n6.6.2 表示方式\r\n6.6.3 扩展\r\n6.7 下文预告\r\n\r\n第二部分 面向对象的C++\r\n\r\n第7章 类\r\n\r\n7.1 成员函数\r\n7.1.1 在结构中放入函数\r\n7.1.2 公共和专有成员\r\n7.1.3 struct和class\r\n7.2 封装思想\r\n7.2.1 保护表示法\r\n7.2.2 Date类\r\n7.2.3 处理2000年问题\r\n7.2.4 const方法,this指针和静态方法\r\n7.3 构造函数和折构函数\r\n7.3.1 类构造函数\r\n7.3.2 默认构造函数\r\n7.3.3 显式清除\r\n7.4 定义为方法的运算符\r\n7.4.1 []运算符\r\n7.4.2 用方法替代函数\r\n7.5 接口与实现\r\n7.5.1 创建头文件\r\n7.5.2 实现文件\r\n7.5.3 分离接口和实现\r\n7.6 案例研究:封装一个类以下载Web页\r\n7.6.1 使用WinInet API访问Web页\r\n7.6.2 封装Winlnet\r\n7.6.3 进一步的练习\r\n7.7 下文预告\r\n\r\n第8章 继承与虚拟方法\r\n\r\n8.1 继承的概念\r\n8.1.1 扩展一个struct\r\n8.1.2 Employee是Person的子集\r\n8.1.3 访问控制与派生\r\n8.1.4 构造初始化列表\r\n8.1.5 类中的常量\r\n8.1.6 用类作为异常\r\n8.2 多态性\r\n8.2.1 类层次结构\r\n8.2.2 动物的层次结构\r\n8.2.3 虚拟方法\r\n8.2.4 抽象类\r\n8.3 代码重用\r\n8.3.1 可重用的对象和函数\r\n8.3.2 使用现有框架\r\n8.3.3 YAWL\r\n8.3.4 什么时候使用面向对象程序设计\r\n8.4 实例研究:再访问绘图程序\r\n8.5 下文预告\r\n\r\n第9章 复制、初始化和赋值\r\n\r\n9.1 复制\r\n9.1.1 初始化与赋值\r\n9.1.2 逐成员复制\r\n9.1.3 备份构造函数和赋值运算符\r\n9.1.4 通过继承复制\r\n9.2 对象的使用期限\r\n9.2.1 动态创建对象\r\n9.2.2 对象的自动析构\r\n9.2.3 临时对象\r\n9.2.4 类型转换\r\n9.3 实例研究:可变数组\r\n9.3.1 可变的引用计数矢量\r\n9.3.2 Array类\r\n9.4 实例研究:编写XML/HTML\r\n9.5 下文预告\r\n\r\n第10章 模板\r\n\r\n10.1 基本函数\r\n10.1.1 重访squ()\r\n10.1.2 特殊化\r\n10.1.3 使用标准容器\r\n10.2 按任何序列操作的函数\r\n10.2.1 序列和for_each()\r\n10.2.2 标准算法\r\n10.2.3 类似于函数的对象\r\n10.3 类模板\r\n10.3.1 参数化类\r\n10.3.2 作为类模板的标准容器\r\n10.3.3 生成模板类的模板函数\r\n10.3.4 将模板接口与实现分开\r\n10.3.5 成员模板\r\n10.4 实例研究:灵活的指针\r\n10.5 下文预告\r\n\r\n第三部分 附录\r\n\r\n附录A UCW命令参考\r\n附录B 库的简短参考\r\n附录C C++预处理器\r\n附录D 用GCC和BCC32编译C++程序和DLL