第5版 Visual C++ 2010入门经典


第5版 Visual C++ 2010入门经典

文章插图
Visual C++ 2010入门经典(第5版)【第5版 Visual C++ 2010入门经典】《Visual C++ 2010入门经典(第5版)》是2010年清华大学出版社出版的一本图书,作者是Ivor Horton 。
基本介绍书名:Visual C++ 2010入门经典(第5版) 
作者:Ivor Horton
原版名称:Ivor Horton's Beginning Visual C++ 2010
译者:苏正泉 李文娟
ISBN:9787302239994
出版社:清华大学出版社
出版时间:2010年12月
内容简介作者ivor horton採用了容易理解的讲授方法,并提供了详尽的示例,帮助读者迅速地成为一名优秀的c++编程人员 。《visual c++ 2010入门经典(第5版)》针对visual c++ 2010版本进行了全面更新,介绍了最新的开发环境和如何使用visual c++构建现实世界中的应用程式 。拥有本书,您就迈向了通往使用两种c++版本编写应用程式的成功之路,并成为一名优秀的c++编程人员 。目录第1章 使用visual c++ 2010编程 11.1 .net framework 11.2 clr 21.3 编写c++应用程式 31.4 学习windows编程 41.4.1学习c++ 41.4.2 c++标準 51.4.3属性 51.4.4控制台应用程式 51.4.5 windows编程概念 61.5 集成开发环境简介 71.5.1编辑器 81.5.2编译器 81.5.3连结器 81.5.4库 81.6 使用ide 81.6.1工具列选项 91.6.2可停靠的工具列 101.6.3文档 111.6.4项目和解决方案 11.1.6.5 设定visual c++ 2010的选项 231.6.6创建和执行windows应用程式 231.6.7创建windows forms应用程式 261.7 小结 271.8 本章主要内容 28第2章 数据、变数和计算 292.1 c++程式结构 292.1.1 main()函式 362.1.2程式语句 362.1.3空白 382.1.4语句块 382.1.5自动生成的控制台程式 392.2 定义变数 402.2.1命名变数 402.2.2声明变数 412.2.3变数的初始值 422.3 基本数据类型 422.3.1整型变数 432.3.2字元数据类型 442.3.3整型修饰符 452.3.4布尔类型 462.3.5浮点类型 462.3.6字面值 472.3.7定义数据类型的同义词 482.3.8具有特定值集的变数 492.4 基本的输入/输出操作 502.4.1从键盘输入 502.4.2到命令行的输出 502.4.3格式化输出 512.4.4转义序列 522.5 c++中的计算 542.5.1赋值语句 542.5.2算术运算 552.5.3计算余数 592.5.4修改变数 602.5.5增量和减量运算符 602.5.6计算的顺序 632.6 类型转换和类型强制转换 642.6.1赋值语句中的类型转换 652.6.2显式类型转换 652.6.3老式的类型强制转换 662.7 auto关键字 662.8 查看类型 672.9 按位运算符 672.9.1按位and运算符 682.9.2按位or运算符 692.9.3按位eor运算符 712.9.4按位not运算符 712.9.5移位运算符 712.10 lvalue和rvalue 732.11 了解存储时间和作用域 742.11.1自动变数 742.11.2决定变数声明的位置 762.11.3全局变数 772.11.4静态变数 802.12 名称空间 802.12.1声明名称空间 812.12.2多个名称空间 822.13 c++/cli编程 842.13.1 c++/cli特有的基本数据类型 842.13.2命令行上的c++/cli输出 872.13.3 c++/cli特有的功能—— 格式化输出 882.13.4 c++/cli的键盘输入 912.13.5使用safe_cast 922.13.6 c++/cli枚举 922.14 查看c++/cli类型 962.15 小结 972.16 练习 972.17 本章主要内容 98第3章 判断和循环 1013.1 比较数据值 1013.1.1 if语句 1023.1.2嵌套的if语句 1043.1.3嵌套的if-else语句 1073.1.4逻辑运算符和表达式 1093.1.5条件运算符 1123.1.6 switch语句 1133.1.7无条件转移 1163.2 重複执行语句块 1173.2.1循环的概念 1173.2.2 for循环的变体 1193.2.3 while循环 1263.2.4 do-while循环 1283.2.5嵌套的循环 1293.3 c++/cli编程 1323.4 小结 1373.5 练习 1383.6 本章主要内容 138第4章 数组、字元串和指针 1394.1 处理多个相同类型的数据值 1394.1.1数组 1404.1.2声明数组 1404.1.3初始化数组 1434.1.4字元数组和字元串处理 1444.1.5多维数组 1474.2 间接数据访问 1504.2.1指针的概念 1504.2.2声明指针 1504.2.3使用指针 1524.2.4初始化指针 1524.2.5 sizeof操作符 1584.2.6常量指针和指向常量的指针 1594.2.7指针和数组 161 4.3 动态记忆体分配 1684.3.1堆的别名—— 空闲存储器 1684.3.2 new和delete操作符 1684.3.3为数组动态分配记忆体 1694.3.4多维数组的动态分配 1714.4 使用引用 1724.4.1引用的概念 1724.4.2声明并初始化lvalue引用 1724.4.3声明并初始化rvalue引用 1734.5 字元串的本地c++库函式 1744.5.1查找以空字元结尾的字元串的长度 1744.5.2连线以空字元结尾的字元串 1744.5.3複製以空字元结尾的字元串 1764.5.4比较以空字元结尾的字元串 1774.5.5搜寻以空字元结尾的字元串 1774.6 c++/cli编程 1794.6.1跟蹤句柄 1804.6.2 clr数组 1814.6.3字元串 1954.6.4跟蹤引用 2034.6.5内部指针 2044.7 小结 2064.8 练习 2064.9 本章主要内容 207第5章 程式结构(1) 2095.1 理解函式 2095.1.1需要函式的原因 2105.1.2函式的结构 2105.1.3使用函式 2135.2 给函式传递实参 2165.2.1按值传递机制 2165.2.2给函式传递指针实参 2175.2.3给函式传递数组 2195.2.4给函式传递引用实参 2225.2.5使用const修饰符 2245.2.6 rvalue引用形参 2255.2.7 main()函式的实参 2275.2.8接受数量不定的函式实参 2295.3 从函式返回值 2315.3.1返回指针 2315.3.2返回引用 2335.3.3函式中的静态变数 2365.4 递归函式调用 2385.5 c++/cli编程 2405.5.1接受数量可变实参的函式 2415.5.2 main( )的实参 2425.6 小结 2435.7 练习 2435.8 本章主要内容 244第6章 程式结构(2) 2456.1 函式指针 2456.1.1声明函式指针 2466.1.2函式指针作为实参 2496.1.3函式指针的数组 2506.2 初始化函式形参 2506.3 异常 2526.3.1抛出异常 2536.3.2捕获异常 2546.3.3 mfc中的异常处理 2556.4 处理记忆体分配错误 2566.5 函式重载 2576.5.1函式重载的概念 2586.5.2引用类型和重载选择 260 6.5.3何时重载函式 2606.6 函式模板 2616.7 使用decltype操作符 2636.8 使用函式的示例 2656.8.1实现计算器 2656.8.2从字元串中删除空格 2686.8.3计算表达式的值 2686.8.4获得项值 2706.8.5分析数 2716.8.6整合程式 2746.8.7扩展程式 2756.8.8提取子字元串 2776.8.9运行修改过的程式 2796.9 c++/cli编程 2796.9.1理解泛型函式 2806.9.2 clr版本的计算器程式 2856.10 小结 2906.11 练习 2916.12 本章主要内容 292第7章 自定义数据类型 2937.1 c++中的结构 2937.1.1结构的概念 2947.1.2定义结构 2947.1.3初始化结构 2947.1.4访问结构的成员 2957.1.5伴随结构的智慧型感知帮助 2987.1.6 rect结构 2997.1.7使用指针处理结构 3007.2 数据类型、对象、类和实例 3017.2.1类的起源 3037.2.2类的操作 3037.2.3术语 3037.3 理解类 3047.3.1定义类 3047.3.2声明类的对象 3057.3.3访问类的数据成员 3057.3.4类的成员函式 3077.3.5成员函式定义的位置 3097.3.6内联函式 3097.4 类构造函式 3107.4.1构造函式的概念 3117.4.2默认的构造函式 3127.4.3在类定义中指定默认的形参值 3147.4.4在构造函式中使用初始化列表 3167.4.5声明显式的构造函式 3177.5 类的私有成员 3187.5.1访问私有类成员 3207.5.2类的友元函式 3217.5.3默认複製构造函式 3237.6 this指针 3257.7 类的const对象 3277.7.1类的const成员函式 3277.7.2类外部的成员函式定义 3287.8 类对象的数组 3297.9 类的静态成员 3317.9.1类的静态数据成员 3317.9.2类的静态函式成员 3347.10 类对象的指针和引用 3347.10.1类对象的指针 3347.10.2类对象的引用 3377.11 c++/cli编程 3387.11.1定义值类类型 3397.11.2定义引用类类型 3447.11.3定义引用类类型的複製构造函式 3467.11.4类属性 3467.11.5 initonly栏位 3587.11.6静态构造函式 3607.12 小结 3607.13 练习 3607.14 本章主要内容 361 第8章 深入理解类 3638.1 类析构函式 3638.1.1析构函式的概念 3638.1.2默认的析构函式 3648.1.3析构函式与动态记忆体分配 3668.2 实现複製构造函式 3698.3 在变数之间共享记忆体 3708.3.1定义联合 3718.3.2匿名联合 3728.3.3类和结构中的联合 3728.4 运算符重载 3738.4.1实现重载的运算符 3738.4.2实现对比较运算符的完全支持 3768.4.3重载赋值运算符 3798.4.4重载加法运算符 3848.4.5重载递增和递减运算符 3878.4.6重载函式调用操作符 3888.5 对象複製问题 3898.5.1避免不必要的複製操作 3898.5.2套用rvalue引用形参 3928.5.3命名的对象是lvalue 3948.6 类模板 3998.6.1定义类模板 4008.6.2根据类模板创建对象 4028.6.3使用有多个形参的类模板 4058.6.4函式对象模板 4068.7 使用类 4078.7.1类接口的概念 4078.7.2定义问题 4078.7.3实现cbox类 4088.8 组织程式代码 4258.9 字元串的本地c++库类 4278.9.1创建字元串对象 4278.9.2连线字元串 4298.9.3访问与修改字元串 4328.9.4比较字元串 4368.9.5搜寻字元串 4398.10 c++/cli编程 4478.10.1在值类中重载运算符 4478.10.2重载递增和递减运算符 4528.10.3在引用类中重载运算符 4538.10.4实现引用类型的赋值运算符 4558.11 小结 4568.12 练习 4568.13 本章主要内容 457第9章 类继承和虚函式 4599.1 面向对象编程的基本思想 4599.2 类的继承 4609.2.1基类的概念 4619.2.2基类的派生类 4619.3 继承机制下的访问控制 4649.3.1派生类中构造函式的操作 4679.3.2声明类的保护成员 4709.3.3继承类成员的访问级别 4739.4 派生类中的複製构造函式 4749.5 友元类成员 4779.5.1友元类 4799.5.2对类友元关係的限制 4799.6 虚函式 4799.6.1虚函式的概念 4819.6.2使用指向类对象的指针 4839.6.3使用引用处理虚函式 4859.6.4纯虚函式 486 9.6.5抽象类 4879.6.6间接基类 4899.6.7虚析构函式 4919.7 类类型之间的强制转换 4949.8 嵌套类 4959.9 c++/cli编程 4989.9.1装箱与拆箱 4999.9.2 c++/cli类的继承 4999.9.3接口类 5059.9.4定义接口类 5059.9.5类和程式集 5099.9.6被指定为new的函式 5139.9.7委託和事件 5149.9.8引用类的析构函式和终结器 5259.9.9泛型类 5279.10 小结 5369.11 练习 5369.12 本章主要内容 539第10章 标準模板库 54110.1 标準模板库的定义 54110.1.1容器 54210.1.2容器适配器 54210.1.3叠代器 54310.1.4算法 54410.1.5 stl中的函式对象 54510.1.6函式适配器 54510.2 stl容器範围 54510.3 序列容器 54510.3.1创建矢量容器 54610.3.2矢量容器的容量和大小 54910.3.3访问矢量中的元素 55310.3.4在矢量中插入和删除元素 55310.3.5在矢量中存储类对象 55510.3.6排序矢量元素 55910.3.7排序矢量中的指针 56010.3.8双端伫列容器 56210.3.9使用列表容器 56510.3.10使用其他序列容器 57410.4 关联容器 58810.4.1使用映射容器 58910.4.2使用多重映射容器 60010.5 关于叠代器的更多内容 60010.5.1使用输入流叠代器 60110.5.2使用插入叠代器 60410.5.3使用输出流叠代器 60510.6 关于函式对象的更多内容 60710.7 关于算法的更多内容 60810.7.1 fill() 60810.7.2 replace() 60910.7.3 find() 60910.7.4 transform() 61010.8 lambda表达式 61110.8.1 capture子句 61210.8.2捕获特定的变数 61310.8.3模板和lambda表达式 61310.8.4包装lambda表达式 61710.9 c++/cli程式的stl 61810.9.1 stl/clr容器 61910.9.2使用序列容器 61910.9.3使用关联容器 62710.10 c++/cli中的lambda表达式 63310.11 小结 633 10.12 练习 63310.13 本章主要内容 634第11章 调试技术 63511.1 理解调试 63511.1.1程式故障 63611.1.2常见故障 63711.2 基本的调试操作 63811.2.1设定断点 63911.2.2设定跟蹤点 64111.2.3启动调试模式 64111.2.4修改变数的值 64511.3 添加调试代码 64511.3.1使用断言 64511.3.2添加自己的调试代码 64711.4 调试程式 65211.4.1调用栈 65211.4.2单步执行到出错位置 65311.5 测试扩展的类 65611.6 调试动态记忆体 65911.6.1检查空闲存储器的函式 66011.6.2控制空闲存储器的调试操作 66111.6.3空闲存储器的调试输出 66211.7 调试c++/cli程式 66811.7.1使用调试类debug和跟蹤类trace 66811.7.2在windows forms应用程式中获得跟蹤输出 67611.8 小结 67711.9 本章主要内容 677第12章 windows编程的概念 67912.1 windows编程基础 67912.1.1视窗的元素 68012.1.2 windows程式与操作系统 68112.1.3事件驱动型程式 68212.1.4 windows讯息 68212.1.5 windows api 68212.1.6 windows数据类型 68312.1.7 windows程式中的符号 68412.2 windows程式的结构 68512.2.1 winmain()函式 68612.2.2讯息处理函式 69612.2.3简单的windows程式 70012.3 windows程式的组织 70112.4 mfc 70212.4.1 mfc表示法 70212.4.2 mfc程式的组织方式 70212.5 使用windows forms 70612.6 小结 70712.7 本章主要内容 707第13章 多核编程 70913.1 并行处理基本知识 70913.2 并行模式库 71013.3 并行处理算法 71013.3.1使用parallel_for算法 71013.3.2使用parallel_for_each算法 71213.3.3使用parallel_invoke算法 71413.4 真正的并行问题 715 13.5 临界区 72813.5.1使用critical_section对象 72813.5.2锁定代码节或解除代码节锁定 72913.6 combinable类模板 73113.7 任务和任务组 73313.8 小结 73613.9 练习 73613.10 本章主要内容 736第14章 使用mfc编写windows程式 73914.1 mfc的文档/视图概念 73914.1.1文档的概念 73914.1.2文档界面 74014.1.3视图的概念 74014.1.4连结文档和视图 74114.1.5应用程式和mfc 74214.2 创建mfc应用程式 74314.2.1创建sdi应用程式 74514.2.2 mfc application wizard的输出 74814.2.3创建mdi应用程式 75714.3 小结 76014.4 练习 76014.5 本章主要内容 760第15章 处理选单和工具列 76315.1 与windows进行通信 76315.1.1了解讯息映射 76415.1.2讯息类别 76715.1.3处理程式中的讯息 76715.2 扩展sketcher程式 76815.3 选单的元素 76915.4 为选单讯息添加处理程式 77115.4.1选择处理选单讯息的类 77315.4.2创建选单讯息函式 77315.4.3编写选单讯息函式的代码 77515.4.4添加更新用户界面的讯息处理程式 77815.5 添加工具列按钮 78115.5.1编辑工具列按钮的属性 78215.5.2练习使用工具列按钮 78315.5.3添加工具提示 78415.6 c++/cli程式中的选单和工具列 78515.6.1理解windows forms 78515.6.2理解windows forms应用程式 78615.6.3在clr sketcher中添加选单 78815.6.4添加选单项的事件处理程式 79015.6.5实现事件处理程式 79115.6.6设定选单项複选 79215.6.7添加工具列 79315.7 小结 79715.8 练习 79715.9 本章主要内容 797第16章 在视窗中绘图 79916.1 视窗绘图的基础知识 79916.1.1视窗工作区 80016.1.2 windows图形设备界面 80016.2 visual c++中的绘图机制 80216.2.1应用程式中的视图类 80216.2.2 cdc类 803 16.3 实际绘製图形 81116.4 对滑鼠进行编程 81316.4.1滑鼠发出的讯息 81316.4.2滑鼠讯息处理程式 81416.4.3使用滑鼠绘图 81616.5 练习使用sketcher程式 83716.5.1运行示例 83816.5.2捕获滑鼠讯息 83816.6 在clr中绘图 84016.6.1在窗体上绘图 84016.6.2添加滑鼠事件处理程式 84016.6.3定义c++/cli元素类 84216.6.4实现mousemove事件处理程式 85016.6.5实现mouseup事件处理程式 85116.6.6实现窗体的paint事件处理程式 85116.7 小结 85216.8 练习 85216.9 本章主要内容 853第17章 创建文档和改进视图 85517.1 创建草图文档 85517.2 改进视图 85917.2.1更新多个视图 85917.2.2滚动视图 86117.2.3使用mm_loenglish映射模式 86517.3 删除和移动形状 86617.4 实现上下文选单 86617.4.1关联选单和类 86717.4.2练习弹出选单 87017.4.3突出显示元素 87017.4.4处理选单讯息 87417.5 处理禁止的元素 88117.6 扩展clr sketcher 88217.6.1坐标系统转换 88217.6.2定义草图类 88517.6.3在paint事件处理程式中绘製草图 88617.6.4实现元素的突出显示 88717.6.5创建上下文选单 89117.7 小结 89717.8 练习 89717.9 本章主要内容 898第18章 使用对话框和控制项 89918.1 理解对话框 89918.2 理解控制项 90018.3 创建对话框资源 90018.3.1给对话框添加控制项 90118.3.2测试对话框 90218.4 对话框的编程 90218.4.1添加对话框类 90218.4.2模态和非模态对话框 90318.4.3显示对话框 90318.5 支持对话框控制项 90618.5.1初始化控制项 90618.5.2处理单选按钮讯息 90718.6 完成对话框的操作 90818.6.1给文档添加线宽 90818.6.2给元素添加线宽 90918.6.3在视图中创建元素 91018.6.4练习使用对话框 91018.7 使用微调按钮控制项 91118.7.1添加scale选单项和工具列按钮 91118.7.2创建微调按钮 91118.7.3生成比例对话框类 91318.7.4显示微调按钮 91518.8 使用缩放比例 91618.8.1可缩放的映射模式 91618.8.2设定文档的大小 91718.8.3设定映射模式 91818.8.4同时实现滚动与缩放 919 18.9 使用ctaskdialog类 92118.9.1显示任务对话框 92118.9.2创建ctaskdialog对象 92318.10 使用状态栏 92518.11 使用列表框 92918.11.1删除比例对话框 92918.11.2创建列表框控制项 92918.12 使用编辑框控制项 93118.12.1创建编辑框资源 93118.12.2创建对话框类 93318.12.3添加text选单项 93418.12.4定义文本元素 93518.12.5实现ctext类 93518.13 clr sketcher中的对话框和控制项 94018.13.1添加对话框 94018.13.2创建文本元素 94618.14 小结 95318.15 练习 95318.16 本章主要内容 953第19章 存储和列印文档 95519.1 了解序列化 95519.2 序列化文档 95619.2.1文档类定义中的序列化 95619.2.2文档类实现中的序列化 95719.2.3基于cobject的类的功能 95919.2.4序列化的工作方式 96019.2.5如何实现类的序列化 96119.3 套用序列化 96119.3.1记录文档修改 96219.3.2序列化文档 96319.3.3序列化元素类 96519.4 练习序列化 96819.5 列印文档 96919.6 实现多页列印 97219.6.1获取文档的总尺寸 97319.6.2存储列印数据 97319.6.3準备列印 97419.6.4列印后的清除 97619.6.5準备设备上下文 97619.6.6列印文档 97719.6.7获得文档的列印输出 98019.7 clr sketcher中的序列化和列印 98119.7.1了解二进制序列化 98119.7.2序列化草图 98519.7.3列印草图 99519.8 小结 99619.9 练习 99619.10 本章主要内容 997第20章 编写自己的dll 99920.1 了解dll 99920.1.1 dll的工作方式 100020.1.2 dll的内容 100320.1.3 dll变体 100320.2 决定放入dll的内容 100420.3 编写dll 100520.4 小结 101120.5 练习 101120.6 本章主要内容 1011