方法一:通过派生类的构造函数初始化
class base {
protected:
int no;
public:
void showData() {
cout << no;
}
};
class der : public base {
public:
der(int _no) {
no = _no;
}
};
方法二:通过基类的构造函数初始化
class base {
int no;
protected:
base(int _no) : no(_no){}
public:
void showData() {
cout << no;
}
};
class der : public base {
public:
der(int _no) : base(_no) {
}
};
客户端代码:
der d(10);
d.showData();
如果有其他方法请告诉我
最佳答案
您应该使用第二种方法,原因之一是:如果基类成员是 private
,则方法一将不起作用。看到派生类初始化不属于它的东西也很奇怪。
关于c++ - 在创建派生类对象时初始化基类成员的更好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7188827/