当我们复制/分配派生类对象时,如何在继承中复制基类成员?

How Base class members gets copied in inheritance when we copy/assign derived class objects?

提问人:Jack 提问时间:5/8/2019 最后编辑:Jack 更新时间:5/8/2019 访问量:227

问:

我有以下情况:

我有一个 Abstract 基类 No Copy 构造函数 无赋值运算符 有一些数据成员

派生类(派生自上面的基类) has 赋值运算符 有一些数据成员

当我们将一个派生类对象复制到另一个现有的派生类对象时,如何复制基类的成员。 我理解,因为我们为派生类定义了一个赋值运算符,该运算符复制派生类成员,但是如何复制基类成员,会通过默认赋值运算符吗?

C++ 继承 copy-constructor deep-copy assignment-operator

评论

2赞 Angew is no longer proud of SO 5/8/2019
请显示代码而不是描述它。

答:

3赞 Paul Evans 5/8/2019 #1

如何复制基类的成员

由于没有显式的复制构造函数,因此编译器将生成一个。反过来,它将为基类的数据成员调用/生成复制构造函数。最后,内置类型 (, , pointers!被简单地复制),带有复制构造函数的类型可以复制自己,任何其他类型都会产生编译时错误。intfloat