如果你写下:
class Empty { };
这就好像你写下这样的代码:
class Empty
{
public:
Empty () {…} //默认构造函数
Empty (const Empty &rhs) {…} //复制构造函数
~Empty () {…} //析构函数
Empty & operator=(const Empty &rhs) {…} //拷贝赋值运算符
};
1. 如果你打算在线一个“内含引用成员”的class内支持赋值操作,你必须定义自己的拷贝赋值运算符。面对“内含const成员”的class,编译器的反应也是一样。
2. 如果某个基类将拷贝赋值运算符声明为private,编译器将拒绝为其继承类生成一个拷贝赋值运算符。