一、拷贝构造函数
1、 仅当准备用按值传递的方式传递对象时,才需要拷贝构造函数
2、 拷贝构造函数采用相同的类型的已存在对象的引用作为它的参数,它可以被用来从现有的对象创建新对象。如果不想通过按值传递方式传递和返回对象,应该创建一个私有的拷贝构造函数。
3、 如果允许编译器为派生类生成拷贝构造函数,它将首先自动地调用基类的拷贝构造函数,然后再是各成员对象的拷贝构造函数。
二、运算符重载
1、 运算符重载存在的原因是为了使编程容易,它只不过是拥有有趣名字的函数。
2、 使用了new和delete的内存分配系统是为通用目的而设计的,但有时处于效率和堆碎片的考虑,我们可以重载new和delete。
3、 Operator= 不能被继承
三、虚函数
1、 晚捆绑只对virtual函数起作用,编译器不允许我们改变重新定义过的虚函数。
2、 当继承一个抽象类时,必须实现所有的纯虚函数,否则继承出的类也将是一个抽象类。
3、 建立公共接口的唯一原因是它能对于每个不同的子类有不同的表示。它建立一个基本的格式,用来确定什么是对于所有派生类是公共的。
4、 对于在构造函数中调用一个虚函数的情况,被调用的只是这个函数的本地版本。也就是说虚机制在构造函数不工作。另外,构造函数时不能为虚函数的,但析构函数能够且常常必须是虚的。