公有继承中 构造函数和析构函数的调用(包含内嵌子对象)


先祖先后客人再自己。

#include<iostream>

#include<cstdio>



using namespace std;

class B0
{
public:
    B0(){cout << "construct B0" << endl;}
};

class Date

{

private:

int year, month, day;

public:



Date(int i = 0, int j = 0, int k = 0):year(i), month(j), day(k)

{cout << "year:" << year << " month:" << month << " day:"<< day << endl;
cout  << "construct Date" << endl;}

//Date(){cout << "default construct" << endl;}

~Date(){cout << "destruct Date" << endl;}

};





class Registration:public B0, public Date

{



private:

string number, id, sex;



public:
Date d;



//内嵌子对象赋值,,,学到了,以前一直以为d.year(a), d.month(b),,,

Registration(string n, string i, string s, int a, int b, int c):d(a, b, c){number = n; id = i; sex = s;}

Registration(Registration &r):d(r.d){number = r.number; id = r.id; sex = r.sex;}



void show()

{

cout << "number:" << number << " sex:" << sex << " id:" << id << endl;



}



};

int main()



{

string number, id, sex ;

int a, c, b;

while(cin >> number >> id >> sex >> a >> b >> c)

{

Registration r(number, id, sex, a, b, c);

r.show();}

return 0;

}

猜你喜欢

转载自blog.csdn.net/klftespace/article/details/80897105
今日推荐