书稿《C++释难解惑》(C++130个问题)已上传到CSDN,欢迎下载
来源:互联网 发布:找淘宝运营 编辑:程序博客网 时间:2024/05/16 04:47
我已经将我与陈翼男博士合写的的书稿《C++释难解惑》上传到CSDN,欢迎朋友们下载。
我做过10年程序员,在大学教过15年书,对C++内部机制有较深入的理解。陈翼男博士在飞利浦亚洲研究院有较多的编程实践,很有心得。本书能帮您解决C++的许多疑惑,并让您学到实际编程的许多经验。本书尚未出版,先放到网上给大家免费下载和阅览。
下载链接地址为:
http://download.csdn.net/download/chenshuzhenteacher/4807846
进入我的博客的方法是,在CSDN博客里的输入框里输入:chenshuzhenteacher即可, 然后点击资源即可,您试验一下,有问题请告诉我。
在CSDN里的下载里(有个放大镜)的输入框里输入:C++语言释难解惑也可以。
我向您证,我和陈翼男博士合写的这本书是一本很有意义的一本书,绝非欺世盗名之作。如果您看懂了,请您在网上发点感言,就是对我们的最大回报。谢谢。
目录
第 1 章 C++语言的基础知识...7
1.1 什么是抽象...7
1.2 面向对象开放方法为什么优于传统的开发方法?...7
1.3 C++函数声明只能为原型形式,目的是为了函数重载...7
1.4 C++编译器与C语言编译器的关系...8
1.5 C++为什么不提倡使用scanf和printf函数...9
1.6 以自内向外的规则读一个定义语句...9
1.7 const修饰符最重要的用途是函数传参和类继承...10
1.8 C++支持缺省参数值并非仅仅为了函数调用灵活...11
1.9 应用程序与内存的关系...11
1.10 new、delete与malloc和free的对比...11
1.11 使用new、delete要注意什么...12
1.12 堆数组的优越性...12
1.13 内联机制的得与失...13
1.14 内联函数的实质...13
1.15 编译器与变量的逻辑地址...14
1.16 引用与变量的逻辑地址...14
1.17 关于C++引用机制内在实现的深层探索...14
1.18 理解刁钻定义语句的方法:自内向外读...19
1.19 怎样解读定义引用的语句...20
1.20 ‘&’是引用运算符吗?被引用变量类型可任意吗?...20
1.21 引用的主要用途...21
1.22 const引用的用途...22
1.23 在定义指向函数的指针上,C++和C语言不同...23
第 2 章 类和对象...25
2.1 类声明部分与类实现部分的作用域问题...25
2.2 符号‘::’有时候不是运算符...25
2.3 对象的数据和函数在内存里放在一起吗?...25
2.4 C++的类与C++的结构之对比...26
2.5 C++编译器利用this实现成员函数共享的细节...26
2.6 消息三要素...29
2.7 函数重载机制的奥秘...29
2.8 函数重载与参数缺省值共用可能引起两意性...31
2.9 函数重载与引用传参共用可能引起两意性...31
2.10 类作用域及类成员作用域的延伸...32
2.11 值得推荐的嵌套类...33
第 3 章 构造函数和析构函数...35
3.1 C++为什么要有构造函数和析构函数...35
3.2 生成对象时可能发生的两意性问题...36
3.3 类的指针成员与缺省构造函数问题...36
3.4 析构函数与符号‘~’37
3.5 调用复制构造函数的充分必要条件...37
3.6 C++很少使用值传参的主要原因...37
3.7 C++为什么要提供数据类型转换...37
3.8 构造函数与隐式类型转换...37
3.9 构造函数与显式类型转换...38
3.10 C++为什么允许数据类型转换写成形如int(3.14)39
3.11 构造函数和析构函数可以是私有或保护的吗?...40
3.12 等号形式的对象初始化...41
3.13 函数返值与对象初始化细节...42
3.14 当函数返值是引用时的一系列问题...44
3.15 返值是引用的函数调用表达式为什么可以作左值...46
3.16 当类成员被const时为什么必须使用初始化表...47
3.17 当类成员是引用时为什么构造函数形参必须是引用...47
第 4 章 继承和派生类...51
4.1 公有派生和赋值兼容规则与异质链表...51
4.2 私有派生下,基类不可访问成员无法访问吗?...52
4.3 私有派生与保护派生关于基类成员可访问性之对比...52
4.4 虚基类子对象在派生类对象中的存储之谜...53
第 5 章 多态性和虚函数...55
5.1 现实生活版本的多态性...55
5.2 多态性第一大用途:使异质链表智能化...55
5.3 多态性实现靠的是幕后英雄:编译器...55
5.4 静态联编的实现细节...56
5.5 派生类与基类中的同名函数为什么称为重载?...56
5.6 为什么说编译时多态性价值不大?...56
5.7 用指针将异质结点穿起来的条件...58
5.8 揭开虚函数的神秘面纱...60
5.9 细微到虚指针和虚表级别的执行过程之谜...63
5.10 深入理解动态联编、虚函数机制、多态性三概念...65
5.11 多姿多态美如礼花的多态性例子...66
5.12 虚函数机制最重要的目的是虚以待实-‘换肾’...68
5.13 虚析构函数与虚函数相伴而生潜规则之谜...73
5.14 编译器如何对动态联编语句中虚函数访问权限检查...76
5.15 构造函数和析构函数调虚函数为什么静态联编?...77
第 6 章 特殊成员及友元...81
6.1 C语言为什么要设立内部静态存储类型?...81
6.2 C++为什么要设立类静态数据成员?...81
6.3 类静态数据成员的外部属性...82
6.4 C++为什么要设立类静态成员函数?...83
6.5 类静态成员函数的外部属性...83
6.6 基类的静态数据成员是否为整个类家族对象共享?...83
6.7 静态成员函数的两面性...84
6.8 友元函数的声明只能放在类的公有部分吗?...84
6.9 友元的提出是为了方便程序的读写吗?...84
6.10 将另一个类的成员函数声明为类的友元函数的比喻...85
6.11 定义另一个类的成员函数为本类友元函数的格式...85
6.12 将另一个类声明为类的友元类的形象例子...86
6.13 只与单个类有关的友元改为类静态成员函数更好...90
6.14 constthis成员函数的由来...91
6.15 为何const对象只能与constthis成员函数连用?...93
6.16 constthis和非constthis是两个不同的成员函数...93
6.17 constthis成员函数的声明与定义的一致性...94
6.18 非const对象可以与constthis成员函数连用...95
6.19 关于const函数返值的探讨...96
6.20 C++为什么有类型转换问题?...99
6.21 C++隐式自动转换的方向问题...99
6.22 ‘由外向里的转换’和‘由里向外的转换’...100
6.23 深入理解指针的两个属性...100
6.24 一种小范围指针:指向类数据成员的指针...101
6.25 指向类数据成员的指针的定义和读法...101
6.26 运算符 .*.102
6.27 运算符->*.103
6.28 指向类成员函数的指针...105
6.29 指向类成员函数的指针与虚函数...107
6.30 指向类静态成员的指针...108
第 7 章 运算符重载及流类库...111
7.1 运算符的一符多用现象...111
7.2 在哪种情况下使用哪种重载运算符的方式合适?...111
7.3 前缀++类运算符重载函数的返值类型问题...112
7.4 前缀++类运算符重载函数的返值是类名的讨论...112
7.5 前缀++类运算符重载函数的返值是void或int114
7.6 前缀++类运算符重载函数的返值是类名的引用...115
7.7 后缀++类运算符重载函数的返值类型问题...115
7.8 后缀++运算符的重复运算问题...116
7.9 关于++、--运算符正确使用的讨论...116
7.10 负号类运算符重载函数的返值类型问题...117
7.11 关于友元运算符重载函数的返值类型问题...119
7.12 关于赋值运算符重载函数返值类型的讨论...121
7.13 流类库的产生...122
7.14 揭开流的神秘面纱...123
7.15 缓冲区的用途...123
7.16 最基本的流类继承关系图的解释...123
7.17 自定义类对象‘>>’和‘<<’的连续性问题...124
7.18 重载‘<<’函数的参数是否为引用的问题...125
7.19 重载‘>>’函数的参数是否为引用的问题...126
7.20 用于格式化I/O的数据成员...126
7.21 对格式标志字的深刻理解...127
7.22 接口函数setf(long_setbits, long _field)的解释...129
7.23 C++为什么要提供操作子...129
7.24 endl居然是外部函数!...130
7.25 我们看重流对象什么?...130
7.26 文件流类...131
7.27 文件读写函数read和write形参中char*的解释...131
7.28 C++语言中文本文件与换行符的关系...132
7.29 C++语言读取文本文件的一个方法...139
第 8 章 预处理命令和编译器...143
8.1 如何避免头文件被重复包含?...143
8.2 有了const和inline,宏定义就‘光荣退休了’?...143
8.3 对visualC++6.0的一些错误和缺陷的探讨...146
8.4 turboc++3.0编译器的一个错误...149
第 9 章 编程实例...153
9.1 超市管理程序...153
9.2 学校管理程序...160
第 10 章 典型题与深究题详解...185
10.1 典型题:函数名重载...185
10.2 典型题:指针的引用...186
10.3 深究题:cin抽取的细节...186
10.4 深究题:仅指向首元素的指针与this指针...187
10.5 典型题:小错集锦...190
10.6 典型题:指针成员与构造函数...191
10.7 典型题:指针成员与析造函数...192
10.8 深究题:拷贝构造函数之调用时机...192
10.9 典型题:私有成员与公有继承...194
10.10 典型题:多继承与二意性...196
10.11 深究题:基类中的私有数据与初始化表...197
10.12 典型题:初始化表...198
10.13 典型题:派生类对象所含各成分初始化过程...199
10.14 典型题:派生类对象的构造函数匹配问题...203
10.15 典型题:动态联编与虚函数...206
10.16 深究题:指向基类的指针与虚析构函数...207
10.17 典型题:动态联编与虚函数...209
10.18 深究题:引用传参与动态联编和虚函数...210
10.19 典型题:引用传参与动态联编...212
10.20 典型题:形参的数据类型与动态联编...214
10.21 典型题:多继承与动态联编...215
10.22 典型题:非类成员与访问权限属性...217
10.23 深究题:静态成员函数调用非静态成员函数...217
10.24 典型题:静态数据成员的初始化...219
10.25 典型题:类的定义与声明...220
10.26 典型题:友元函数...220
10.27 典型题:静态与友元...222
10.28 典型题:constthis成员函数与const对象...223
10.29 典型题:静态数据成员与静态成员函数...225
10.30 典型题:静态数据成员与静态成员函数...227
10.31 典型题:静态数据成员与静态成员函数...230
10.32 典型题:友元重载运算符与运算级别...232
10.33 典型题:cin和cout233
10.34 典型题:友元重载运算符函数的参数...233
10.35 深究题:重载运算符[]234
10.36 典型题:起到操作子作用的对象...237
10.37 典型题:操作子setw..239
10.38 典型题:函数模板...239
10.39 典型题:函数模板...241
10.40 典型题:类模板...242
10.41 典型题:类模板...243
10.42 深究题:函数模板与二维数组...245
10.43 典型题:类模板...247
10.44 深究题:函数模板与冒泡排序法...248
附录1 ASCII码表...251
附录2 C和C++的图示教学法...253
附录3 vc++6.0使用方法简单介绍...259
第一课 建立工程和加入源文件...259
第二课 工程的编译和连接...267
第三课 调试程序基本功...271
第四课 菜单功能简介...277
参考书目...280
----------------------------------------------作者声明-----------------------------------------
我是一个老头,65岁,编过10年程序,在大学教过15年书,写了一本书,名为《C++释难解惑》,这几年来一直在投稿。出版社对我的书稿评价很好,但他们就是由于经济上的风险。总是在出版的最后关头反悔。其中北京****出版社已经签字画押的情况下反悔;北京****出版社与我签过电子合同;书稿在**大学出版社放了9个月,还让我请名人写序言,最后说现在书很难卖,并且还给我发了个近半年的图书销售的excel文档让我看,希望我理解出版社。我只好仰天嗟叹了。
有编辑朋友建议我把书稿放到网上让读者试读,以印证读者的人数和满意度。我想这是一个办法,即使永远不能出版,也不至于烂在肚子里。并且我在网上也看到这个办法成功的先例,例如《C语言深度解剖》,后来就由北航出版社出版了。
如果您对我的书稿和博文感兴趣,请您推荐给您的朋友,谢谢。
本书稿已经国家版权保护中心进行了作品登记,登记号为:2010-A-023237。
下面我把一些出版社给我的来信摘录作为参考。您可以看到,我的书名在不同的出版社和编辑面前改了好几次名了,现在书稿的名字是我自己的。
//-----------------------------------以下是**大学出版社编辑的来信---------
陈老师,
选题我暂以《C++释疑解惑:课本没讲透的131个问题》的名字报上去了。通过审批应该问题不大。下面几点,是咱们电话里说过的,麻烦你着手进行啊:)
//-----------------------------------------------------------------------------------------------------------
陈老师好
从您的来信,我觉得您的文字驾驭能力挺好的,如果您的书,能写成您给我来信的风格,也不错,现在市场上还就缺这样的书。那种一步步讲操作,枯燥的原理,确实没人愿意看,而那种语言比较生动,穿插一些开发故事,体会心得之类的文风,让冰冷的技术活了起来,容易引起读者的共鸣。所以,建议书至少300页,写得生动些,多配些图,甚至每章最后都可以增加上一些问答,比如您历年教学收集到的经典问题等等。当然,其他的一些方法,也都可以尝试,我这里只是抛砖引玉。
//----------------------------------------------------------------------------------------------------------
尊敬的陈老师:您好!
由于负责这本书的编辑已经离职,这本书现由我负责与您沟通及出版事宜。
这本稿件从市场上鲜有的写作角度出发,揭示了C++的很多难点,有些内容具有一定的深度,同时又力求在写作上深入浅出,会有一定量的读者关注书中的问题,这是本书的一大特色。
//-------------------------------------------------------
陈老师:您好!
今天,就这部书稿又与领导进行了沟通。从这部书稿可看出,其中积淀了您多年的经验和大量心血,力图为读者学习C++排疑解惑,实属难能可贵。
从现在的销售数据(开卷数据:专门的图书销售调查数据,采集自全国2000多家书店,随邮附上)看,目前市场上同类书整体销量不理想(月销200本以上较好),即便在这样的数据面前,相对好销的书还属于基础入门的书或教材。在此,也冒昧地想和您探讨,如何将此书出销好的办法,比如:您能帮助出版社做哪些宣传推广,或者利用院校资源推广销售,以及在零售书店怎样做宣传,才能让读者广泛知晓本书并认可,从而形成销售。
//------------------------------------------------------------------------------------------
陈老师:您好!
从来信看到您对开卷销售数据进行了详细分析,相信您也看出零售图书市场的销售状况,即便是第1名的图书也不过160本/月,假设书店与网店销量平分秋色,每月的总销量也只有320本,一年的销量为3840册,按计算机书的平均销售周期一年半计算,预计为5760册(纯零售不包括教材)。以此推算,当月销量在100本的书,预计3600册。这个销量如果没有教材的销量支撑,从出版社的成本计算基本上是没有什么利润的,如果计算上在途、退货等因素,稍有不慎恐怕就会亏本,这基本上就是纯零售书的状况。
信中提到的几位作者的书,销量多则50多本,少则几本,如果纯靠零售销售的话,简单可以看出最终销量的情况。
社里对您这本书的含金量一直都是肯定的,只是苦于店销图书的销售状况,也深知您的身体状况在写作上将要付出的巨大努力,觉得再让您改稿实在是有些不合适。
//-------------------**大学出版社电子出版物编辑的来信--------------------------
陈老师您好:
我与图书编辑沟通了,就如您告诉我的,他对本书的质量不持疑义,主要考虑的是本书的经济效益。我们作为电子出版和网络出版部门,还没出过单独的网络出版物,这条路暂时不考虑。电子出版物5000左右的成本,包括生产成本和人力成本,要保证持平的话,恐怕要由作者承担。这是我向领导报选题时的一项。您作为作者,据我理解,如果没有相关经费支持,由您个人承担是有问题的。所以这个选题的前景还要您考虑。
------------------------------------------------------------------------------------------------------------
参考书目
1. [美]TedFaison,Borland C++3.1编程指南,蒋维杜等译,清华大学出版社,1993
2. 侯俊杰,深入浅出MFC,华中科技大学出版社,2001
3. [美]JessLiberty,21天学通C++,人民邮电出版社,2002
4. [美] StanleyB. Lippman,深度探索C++对象模型,侯捷译,华中科技大学出版社,第1版2007
5. 张海藩等,软件工程,人民邮电出版社2010
6. 宛延闿,C++语言和面向对象程序设计,第二版,清华大学出版社1997
7. 网上下载的全国高自考上机考试题目
8. 陈树振、陈翼男,C++文本文件的一种读写方法,《电脑开发与应用》2008年第10期,中国北方自动控制研究所
9. 陈树振,C和C++的图示教学法,《教学研究》,2005年10月,北京科技职业学院
10. [美] Peter Van Der Linden, C专家编程,徐波译,人民邮电出版社,2002,12
- 书稿《C++释难解惑》(C++130个问题)已上传到CSDN,欢迎下载
- 今天看了我两年前做的 C-Minus 编译器,很有感触,上传到CSDN,提供下载~~~
- 欢迎到C + +教程
- C++释难解惑(1)
- C++释难解惑(2)
- C++释难解惑(3)
- (书稿底稿)(C/C++)第一章:CPU基础知识 1.1CPU和程序的执行
- (书稿底稿)(C/C++)第一章:CPU基础知识 1.1.2 CPU如何获取内容
- (书稿底稿)(C/C++)第一章:CPU基础知识 1.2 管道技术
- 书稿底稿)(C/C++)第一章:CPU基础知识 1.2.2管道技术中的挑战
- (书稿底稿)(C/C++)第一章:CPU基础知识 1.2.5各种内存介绍
- 上传和下载歌曲文件(C#)
- c/s练习——多个客户端上传图片到服务端(tcp)
- 上传 下载 简单例子(c#)
- C#FTP上传和下载
- MyMathLib的全部源码已上传到CSDN
- 《C++语言释难解惑》作者敬告读者(1)
- 《C++语言释难解惑》作者敬告读者(2)
- NET Framework 中的反射
- Ubuntu machine - no interfaces listed
- Cocos2d开发系列(三)
- Python正则表达式指南
- 【thinkphp3.x】PHP中spl_autoload_register()函数的用法
- 书稿《C++释难解惑》(C++130个问题)已上传到CSDN,欢迎下载
- switch语句规则
- Wireshark使用方法(学习笔记一)
- API注册表函数
- Windows2003搭建FTP服务器
- Wireshark使用方法(学习笔记二——查询统计)
- 本应用是基于淘宝开放平台(TOP)API以及Google Map JavaScript API的基础上实现的一个自用型淘宝买家应用。
- NLMISC::CConfigFile
- Cocos2d开发系列(四)