前端之家收集整理的这篇文章主要介绍了
c – 为什么无法从派生类对象访问父类的赋值运算符,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
例:
class C
{
public:
void operator =(int i) {}
};
class SubC : public C
{
};
以下是编译错误:
SubC subC;
subC = 0;
“’subC = 0’中的’operator =’不匹配”
一些消息来源声明这是因为赋值运算符不是继承的.但这不仅仅是因为SubC的默认构造拷贝分配掩盖了它们吗?
复制赋值运算符在派生类中
自动生成.由于C的常规
名称隐藏规则,这会导致基类的赋值运算符被隐藏.您可以通过“using”指令取消隐藏基类中的
名称.例如:
class C
{
public:
void operator =(int i) {}
};
class SubC : public C
{
public:
using C::operator=;
};
原文链接:https://www.f2er.com/c/116772.html