正如标题所示,如果我有派生类的复制构造函数,我也需要复制基类的成员,但我没有访问私有成员的权限。我该如何做到这一点?
您有以下方法来实现这一点:
(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_。只有在绝对必要时才使用。