欢迎光临散文网 会员登陆 & 注册

Effective C++ 第十二条 Copy all parts of an object.

2023-01-15 15:36 作者:九思519  | 我要投稿

复制对象时勿忘其中每一个成分

        我们先写一个类以及它的拷贝构造和赋值操作

这个类没有任何问题,也不会报错,接着看

    但是一旦涉及继承,就会出问题了,在 Derived 类中拷贝构造明明和 Base 一样,但是却会出错,因为 Derived 的拷贝构造只初始化了 Derived 中的成员 b ,没有顾及到 Base 中的成员 a。但是这里 Derived 是 public 继承,无法调用 Base 中的 private 成员,所以应当调用 Base 的 拷贝构造或复制来实现,解决如下


问题到这里就解决了,但是有一个点可以优化

将 assignment 和 copy constructor 的共同部分打包成一个函数,尽量代码复用

这里通过提高了代码复用性。

谨记:不要通过 assignment 调用 copy constructor ,也不要在 copy constructor 调用 assignment。


Effective C++ 第十二条 Copy all parts of an object.的评论 (共 条)

分享到微博请遵守国家法律