欢迎来到天天文库
浏览记录
ID:13177101
大小:36.50 KB
页数:46页
时间:2018-07-21
《《深度探索c++对象模型》读书笔记:第5章 构造、结构、拷贝 语意学》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《深度探索C++对象模型》读书笔记:第5章构造、结构、拷贝语意学64位平台C/C++开发注意事项《深度探索C++对象模型》读书笔记:第5章构造、结构、拷贝语意学64位平台C/C++开发注意事项《深度探索C++对象模型》读书笔记:第5章构造、结构、拷贝语意学64位平台C/C++开发注意事项《深度探索C++对象模型》读书笔记:第5章构造、结构、拷贝语意学64位平台C/C++开发注意事项《深度探索C++对象模型》读书笔记:第5章构造、结构、拷贝语意学64位平台C/C++开发注意事项《深度探索C++对象模型》读书笔记:第5章构
2、造、结构、拷贝语意学64位平台C/C++开发注意事项《深度探索C++对象模型》读书笔记:第5章构造、结构、拷贝语意学64位平台C/C++开发注意事项《深度探索C++对象模型》读书笔记:第5章构造、结构、拷贝语意学64位平台C/C++开发注意事项《深度探索C++对象模型》读书笔记:第5章构造、结构、拷贝语意学64位平台C/C++开发注意事项《深度探索C++对象模型》读书笔记:第5章构造、结构、拷贝语意学64位平台C/C++开发注意事项《深度探索C++对象模型》读书笔记:第5章构造、结构、拷贝语意学64位平台C/C++开发
3、注意事项在/en/l/上例出了28个在64位平台上使用C/C++开发的注意事项,对于进入64位时代的程序员应该去看看这28个事项,这些英文读物对于有C/C++功底的朋友读起来应该并不难,我估计大约20-30分钟可以精读完一篇(或者更快),下面是这28个注意事项的列表。相信对大家一点有帮助。Bhui2014www.61690.cnLesson01.What64-bitsystemsare.Lesson02.S本章主要讲述了一下内容:虚函数、纯虚函数的声明,无继承情况下的对象构造,继承体系下的对象构造,对象复制语意学,对象
4、的功能,解构语意学。虚函数、纯虚函数的声明部分对应P191~P195之间的内容,主要讲述了如下内容:ClassAbstract_base{public:virtual~Abstract_base()=0;virtualvoidinterface()const=0;virtualconstchar*mumble()const{return_mumble;}protected:char*_mumble;};1.本类缺少一个构造函数。为什么本类需要一个构造函数呢?因为需要初始化_mumble。2.一个纯虚函数可以有实现。虽然
5、是可以但是本人认为在本例中给出一个纯虚函数的实现来是很令人费解的;因为纯虚函数一般是在基类声明接口用的,只有子类才需要实现这个函数。3.什么样的函数需要是虚的呢?结合书中所述和本人自己的理解,只有一个函数可能因为类型(注意是类型而是类,类型与类的区别《设计模式》一书第一章有说明)不同而有不同实现是需要声明成虚拟的。4.什么函数需要是纯虚函数呢?在接口中声明的函数,做为基类的类中的可能因为类型不同而有不同实现的函数。5.关于虚函数中的const问题。我的意见和数中一致,只有在确定需要const的时候再加。6.关于析构造函
6、数的虚拟性。强烈反对把一个类的构造函数声明称纯虚的;如果一个类可能做为基类且动态创建那么就需要把析构函数声明称虚拟的;其他情况基本不需要把析构函数声明成虚拟的。经过前面的讨论之后作者给出了Abstract_base的新定义。除了作者所说的一些问题外我感觉该类还需要一个拷贝构造函数。为什么呢?因为该类有一个char*成员,很可能该成员会指向一个动态分配的字符数组,为了在上述情况下的不至于发生浅拷贝的现象,所以需要一个拷贝构造函数。无继承情况下的对象构造主要讲述了如下内容:如果没有提供理论上我们可以认为编译器会给我们提供构
7、造函数,析构函数,拷贝构造,拷贝赋值;但是在很多情况下这些函数是无用的;所以编译器要么没有生成要么没有调用这些函数。另外我们需要记住在C++中全局对象会被初始化,可能通过编译器或者我们提供的构造函数(int,char等内置类型也会被初始化)。在本书P199中Pointlocall={1.0,1.0,1.0}这种初始化方式本人还是在这本书中第一次见到。P204页最下面部分的foobar函数声明有误,此时该函数返回值应该为void;此错误同P205页中间部分的foobar函数声明错误。继承体系下的对象构造主要讲述了如下内容
8、:本小节讲了不少也很复杂,但是我觉得对于一个以应用为目的的程序员来说没有太大的必要搞得很清楚。只需要记住P206到P207之间对象在构造时的顺序就可以了。对象复制语意学主要讲述了如下内容:我们经常碰到的情况可以根据P220页所说的情况,来处理。什么时候需要我们提供一个拷贝赋值操作呢?本人觉得在想避免浅拷贝或者想提高效率的情况下提供
此文档下载收益归作者所有