如何将基类的私有成员复制到派生类的复制构造函数中



正如标题所示,如果我有派生类的复制构造函数,我也需要复制基类的成员,但我没有访问私有成员的权限。我该如何做到这一点?

您有以下方法来实现这一点:

(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_。只有在绝对必要时才使用。

最新更新