1、成员变量包含了const和引用
e.g
template<class T>
class NamedObject
{
public:
NamedObject(std::string& Name, const T& value):
nameValue(Name),objectValue(value){}
private:
std::string& nameValue;
const T objectValue;
};
std::string newDog("Persphone");
std::string oldDog("Satch");
NamedObject<int> p(newDog, 2);
NamedObject<int> s(oldDog, 36);
//p = s;说明:
注释部分的语句是不合法的,因为“C++不允许对引用进行重新赋予不同的对象”,此时编译器拒绝编译这一行语句。
2、如果某个基类将“operator=”声明为private,则编译器拒绝为其衍生类生成一个默认的“=”,因为衍生类的“=”需要处理成员的基类部分,这样必须调用基类的“=”,而基类的“=”属于private,无法调用,所以编译器无能为力。
本文探讨了 C++ 中的引用属性与继承机制。解释了为何不能对引用成员进行重新赋值,并讨论了基类将赋值运算符声明为私有时对派生类的影响。
1422

被折叠的 条评论
为什么被折叠?



