Effective C++ 2
来源:互联网 发布:ubuntu 14.04 镜像源 编辑:程序博客网 时间:2024/05/22 00:54
当自己声明了一个构造函数,则default构造函数将不会自动生成。
C++不允许reference改指向不同对象。
如果想要避免对象赋值,则可将赋值构造函数在private中声明。
接下来要讨论的是虚析构函数问题。
class TimeKeeper{
public:
TimeKeeper();
~TimeKeeper();
...
};
class AtomicClock:public TimeKeeper{};
class WaterClock: public TimeKeeper{};
class WristWatch:public TimeKeeper{};
TimeKeeper *getTimeKeeper(); //function,返回指向TimeKeepr派生类。
TimeKeeper* ptk=getTimeKeeper();
delete ptk; //调用~TimeKeeper();从而导致局部删除。
因此引入virtual析构函数。
virtual析构函数使用地点:当此类为基类时。
反之:被当做基类的类要保证析构函数析构正确,即要有virtual析构函数。
想要使类变为抽象类,最方便的方法可以是将析构变为pure virtual,并给出定义。
在构造函数和析构函数中不能调用virtual函数,不会像以上说的那样强。在此时,virtual就是一般函数。
类继承的声明过程,先调用基类构造函数,再派生类构造函数,再析构派生类,最后析构基类。
避免代码重复的办法,声明一个private函数init();将共有的代码放入。
令赋值操作符函数(成员函数)返回reference-to *this;以后会讲到,非成员函数的赋值函数不可以返回reference
下面讲个笑话,如果你自己定义copying函数,则如果你出错,编译器为了报复,不会提醒你错误。
- Effective C++(2)读书笔记
- 《effective c++》读书笔记2
- More Effective C++(2)
- <Effective C++>读书笔记-2
- 《Effective C++》 Reading Note 2
- 《Effective C++》 条款0-2
- 【C++】Digest of 《effective C++》--2
- 《effective c#》 1 2版 目录 对比
- 《Effective Modern C++》Item 2总结
- Effective-Objective-C-读书笔记-Item-2
- Effective Object-c 2.0 读书笔记 (2)
- <<More Effective C++>>读书笔记2: 运算符
- <<More Effective C++>>读书笔记5: 技巧(2)
- <<Effective C++>>读书笔记(2)
- 《Effective C++》和《More Effective C++》汇总
- 《Effective C++》读书笔记
- 《Effective C#》 翻译札记
- 《Effective C++》读感
- 女王
- JavaScript中的剪贴板(clipboardData)提供了对剪贴板的访问。
- 解决matlab的mat文件与ACCESS2003文件关联冲突问题
- 经典问题6 c/c++ 程序设计 ---与或非问题
- readyState:
- Effective C++ 2
- Java动态代理
- 隐藏某个按钮:
- 权限管理设计方法
- seo-用户体验
- function() {函数名();}
- 我的七个建议
- indent 命令参数
- 经典问题5:c/c++ 程序设计 ---usigned char类型转换问题