如何将基类的私有成员复制到派生类的复制构造函数中
How to copy private members of a base class in to a derived class's copy constructor
正如标题所示,如果我有派生类的复制构造函数,我也需要复制基类的成员,但我没有访问私有成员的权限。我该如何做到这一点?
您有以下方法来实现这一点:
(1) 创建一个基复制构造函数(而不是private
),并在派生复制构造函数中调用该构造函数
示例:
class Base {
private: int i;
public: Base(const Base& copy) : i(copy.i) {}
};
class Derived : public Base {
Derived(const Derived& copy) : Base(copy) {}
};
(2) 使要复制的基础成员为protected
;但这是一种不太可取的方式,因为您正在进行赋值,而不是初始化。
(3) 最不可取的方法是使CCD_ 3在CCD_。只有在绝对必要时才使用。
相关文章:
- 基类的填充将被复制到派生类中
- 通过基类接受方法转发派生 UniquePtr 的右值会移动引用而不是复制
- 如何复制只引用基类的派生类
- 为什么为派生类定义复制构造函数需要定义基类的默认构造函数?
- 将shared_ptr的向量复制到抽象基的派生类
- 为什么基类中的复制和交换会导致派生类中的复制赋值运算符被隐式删除?
- 有没有办法复制派生类指针的向量而不将其强制转换为基类?
- 从不可复制派生 AbstractBaseClasses (ABC) 是否有缺点?
- 是否可以在引用另一个派生类的派生类中声明复制构造函数?
- 在派生类中使用基类复制 CTOR
- 复制从抽象类派生的对象
- 派生类的复制构造函数
- 复制派生类更改基类的构造函数
- 复制派生类的分配运算符
- 引发从不可复制派生的可复制类
- 复制派生类中的构造和赋值运算符
- 通过模板复制派生对象C++
- 从指针复制派生对象
- C++:复制派生元素的树
- 调用基类的复制构造函数,同时通过复制派生类的另一个对象来创建派生类的对象