C++语法规定赋值运算符重载函数不能被继承。关于这一点我的理解是赋值运算符和构造、析构函数一样,都是为类量身定做的,继承没有意义,所以编译器屏蔽了这个继承。
最近在网上看到一篇文章(http://blog.csdn.net/pbmichael/article/details/1608250),认为“‘赋值运算符重载函数’不是不能被派生类继承,而是被派生类的默认‘赋值运算符重载函数’给覆盖了。这就是C++赋值运算符重载函数不能被派生类继承的真实原因!”这个观点是不对的,真实的情况如开头所述,赋值运算符不是被覆盖,而是根本没有继承。
为论证该文章中的观点是错误的,我首先要说明不是所有类都自动生成赋值运算符的。当类中含有常数据成员或者引用时,赋值运