1、 C++ 不允许“让reference改指向不同对象”

 

2、 如果你打算在一个“内含reference成员”的class内支持赋值操作(assignment),你必须自己定义copy assignment操作符

3、如果某个base classes将copy assignment操作符声明为private, 编译器将拒绝为其derived classes生成一个copy assignment操作符。

 

4、  (1)如果你不想让编译器自动生成函数,应明确拒绝。比如说,对于复制构造函数,对于一个类,若其应只有一个对象,生成一个副本则毫无道理。则应该为此类声明一个私有的复制构造函数(因为如果你不声明,在需要的时候,编译器会给他生成一个public的复制构造函数),如果你声明了一个私有的,则编译器不会再生成。

 

4、 (2)不让编译器为类生成复制构造函数,还有另外一种方法,就是让这个类去继承一个具有私有复制构造函数的base class。 对于第一种方法,尽管编译器不会生成了,但是友元以及成员函数还是可以调用,但这第二种方法就可以完全避免这个缺陷。

5、  为驳回编译器自动(暗自)提供的机能,可将相应的成员函数声明为private并且不予实现。当然,使用基类也是一种方法

6、为多态基类一定要声明virtual析构函数。