派生类中的构造函数

派生类不能继承基类的构造函数,必须自己定义构造函数进行新增数据成员初始化工作,如果想同时初始化基类数据成员,必须调用基类构造函数。

例如:

 1 class stu1
 2 {
 3 public:
 4     stu1(int i, string strn, double in)
 5     {
 6         ID = i;
 7         name = strn;
 8         income = in;
 9     }
10 
11 private:
12     int ID;
13     string name;
14     double income;
15 };
16 
17 class stu2 :public stu1
18 {
19 public:
20     stu2(int i, const string str, double in, string p) :stu1(i, str, in)
21     {
22         phoneNo = p;
23     }
24 
25 private:
26     string phoneNo;
27 };
28 
29 int main()
30 {
31     stu2 st(1, "Tom", 1000.02, "12345");
32 
33 }

基类也可以使用初始值列表的构造函数:派生类的构造函数不用改变

 1 class stu1
 2 {
 3 public:
 4     stu1(int i, string strn, double in) :ID(i), name(strn), income(in) { }
 5 
 6 private:
 7     int ID;
 8     string name;
 9     double income;
10 };

猜你喜欢

转载自www.cnblogs.com/hi3254014978/p/9810170.html