繁体   English   中英

将基类分配给子类时继承C ++问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM