[英]Inheritance C++ issue when assigning base class to sub class
这可能是一个关于继承的愚蠢问题,但对于为什么不允许我这样做没有多大意义。 我继承的基类是std::string
:
class A : public std::string
当我使用class A
,我想这样做:
A text;
std::string str = "hello";
text = str;
编译器抱怨没有二进制运算符=
可以执行此操作。
我想从string继承的原因是添加了一些额外的功能,但又没有失去std::string
默认提供的功能。
有一个原因不能将基类自动分配给子类吗?
谢谢。
您不能继承赋值运算符,它们会得到特殊待遇。 您可以使用using
从基类中调出它们。
另外,从iostream之外的标准提供的类继承也是非常糟糕的。
有一个原因不能将基类自动分配给子类吗?
是。 这是因为基类不是子类。 您只能采用另一种方法:将子类实例分配给基类实例会很好,因为子类是-基类。
这是一般规则; 另一个答案解释了在std::string
情况下到底有什么错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.