目 录第1章 C++语言概述 11.1 C++语言的发展历史 11.1.1 程序设计语言的分类 11.1.2 C++语言的发展历史 31.2 C++语言的特点 41.2.1 程序设计方法 41.2.2 C++语言的特色 61.3 使用VS .NET调试C++程序 61.3.1 什么是VS.NET 61.3.2 第一个C++程序 81.4 习题 16第2章 数据类型、运算符和表达式 172.1 基本数据类型 172.1.1 整型 192.1.2 字符型 202.1.3 浮点型 212.1.4 布尔型 222.1.5 空型 232.2 常量和变量 232.2.1 常量 242.2.2 变量 262.3 输入输出 292.3.1 cout 302.3.2 cin 322.4 运算符和表达式 332.4.1 算术运算符和算术表达式 332.4.2 关系运算符与关系表达式 362.4.3 逻辑运算符和逻辑表达式 372.4.4 位运算符和位运算表达式 382.4.5 赋值运算符和赋值表达式 422.4.6 逗号运算符 432.4.7 sizeof运算符 442.5 数据类型的转换 452.5.1 赋值运算中的数据类型转换 452.5.2 表达式中的数据类型转换 462.6 构造数据类型 472.6.1 结构体 472.6.2 共用体 502.6.3 枚举 522.6.4 自定义数据类型 532.7 习题 54第3章 控制结构 563.1 顺序结构 563.2 选择结构 573.2.1 if语句 573.2.2 switch语句 613.3 循环结构 653.3.1 while语句 653.3.2 do-while语句 673.3.3 for语句 683.3.4 goto语句 723.3.5 break和continue 723.4 程序设计举例 743.5 习题 79第4章 函数和预处理命令 804.1 函数 804.1.1 函数的定义 804.1.2 函数的调用 824.1.3 函数的参数与函数的返回值 844.1.4 函数的嵌套调用与递归调用 884.1.5 局部变量和全局变量 914.1.6 存储类别 954.1.7 函数原型 1004.2 预处理命令 1014.2.1 宏定义 1024.2.2 文件包含 1044.2.3 条件编译 1044.2.4 程序设计实例 1074.3 习题 112第5章 数组、字符串和指针 1135.1 数组 1135.1.1 一维数组 1145.1.2 二维数组和多维数组 1195.2 字符串 1215.2.1 字符数组和字符串 1215.2.2 标准字符串库函数 1235.2.3 字符串数组 1265.2.4 字符串应用举例 1265.3 指针 1285.3.1 指针的定义 1295.3.2 使用简单的指针 1295.3.3 指针和数组 1335.3.4 指针和字符串 1365.3.5 指针数组 1385.3.6 多重间接访问 1395.3.7 指针、数组与函数 1415.3.8 main函数的参数 1455.4 链表 1485.4.1 什么是链表 1485.4.2 链表的创建、插入和删除 1495.4.3 使用链表创建一个学生成绩管理系统 1575.5 习题 164第6章 类与对象 1656.1 类和对象的基本概念 1656.2 构造函数与析构函数 1716.3 内联函数 1746.4 静态成员 1786.5 对象数组 1806.6 指向对象的指针 1816.7 在函数中使用对象 1846.8 this指针 1896.9 友元 1916.10 习题 195
第7章 继承、重载和多态性 1967.1 继承 1967.1.1 基类和派生类 1967.1.2 继承的访问控制 1997.1.3 派生类的构造函数和析构函数 2027.1.4 多重派生 2077.2 重载 2097.2.1 函数重载 2097.2.2 运算符重载 2117.3 多态性 2187.3.1 指向基类的指针和指向派生类的指针 2187.3.2 虚函数 2207.3.3 纯虚函数和抽象类 2237.4 程序设计实例 2257.5 习题 233第8章 I/O系统和文件 2348.1 流 2348.1.1 流的概念 2348.1.2 预定义的C++流 2358.1.3 重载I/O运算符 2358.2 格式化I/O 2398.2.1 使用ios成员函数进行格式化输入输出 2398.2.2 使用操控符实现格式化输入输出 2438.3 文件流 2478.3.1 打开和关闭文件 2478.3.2 读写文本文件 2498.3.3 读写二进制文件 2508.3.4 其他I/O函数 2548.4 程序设计实例 2598.5 习题 262第9章 模板、异常处理和命名空间 2639.1 模板 2639.1.1 函数模板 2639.1.2 类模板 2679.2 异常处理 2719.2.1 基础知识 2729.2.2 捕获所有异常 2789.2.3 异常嵌套 2799.3 命名空间 2809.3.1 命名空间的定义 2809.3.2 使用using引用命名空间 2829.4 习题 284第10章 创建MFC Windows应用程序 28510.1 什么是MFC 28510.1.1 MFC的优点 28510.1.2 MFC的功能 28610.1.3 如何使用 MFC 28610.2 Windows程序设计基础 28710.2.1 创建一个最简单的Windows程序 28710.2.2 程序运行流程分析 29010.2.3 框架窗口类 29110.2.4 文档模板 29310.2.5 文档类 29410.2.6 视图类 29510.2.7 文档/视图结构 29610.2.8 程序员的工作 29710.3 单文档应用 29810.3.1 单文档类型和多文档类型 29810.3.2 消息驱动 29810.3.3 创建Hello World程序 29910.3.4 创建一个简单的文本编辑器 30110.4 多文档应用 31110.4.1 MFC创建的MDI应用程序的结构 31110.4.2 增强文本编辑器的功能 31310.5 习题 317第11章 对话框程序设计 31911.1 对话框的使用 31911.1.1 如何建立一个基于对话框的应用 31911.1.2 常见的简单控件 32011.2 菜单 33611.2.1 编辑菜单 33711.2.2 使用CMenu来管理菜单 33711.2.3 编写代码 33811.3 控制条 34011.3.1 工具栏 34111.3.2 状态条 34311.4 习题 346第12章 创建ActiveX控件 34712.1 ActiveX概述 34712.1.1 什么是ActiveX技术 34712.1.2 ActiveX的主要内容 34712.1.3 什么是ActiveX控件 34812.1.4 ActiveX控件的基本组成 34912.2 使用MFC开发ActiveX控件 34912.2.1 创建一个Hello World控件 34912.2.2 创建一个四则运算控件 35212.2.3 添加属性 35712.3 使用ATL开发ActiveX控件 36612.3.1 ATL简介 36612.3.2 使用ATL开发ActiveX控件 36612.3.3 测试控件 37112.4 习题 372第13章 数据库和Internet程序设计 37313.1 数据库 37313.1.1 关系数据库基础 37313.1.2 使用ODBC访问数据库 37513.2 Internet程序设计 38413.2.1 WinInet基础 38413.2.2 一个简单的例子 38513.3 习题 389