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

C++多重继承示例
本文介绍了一个使用C++实现的多重继承示例,其中包括基类B0和Date类,以及派生类Registration。该示例展示了如何在构造函数中初始化内嵌对象,并通过拷贝构造函数进行对象复制。


先祖先后客人再自己。

#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;

}

1.实验目的 (1)学会根据具体需求设计类的成员。 (2)深入理解C++中类的封装性,掌握类的定义。 (3)掌握类的对象的声明。 (4)掌握具有不同访问属性的成员的访问方式。 (5)掌握构造函数析构函数的使用。 (6)使用debug调试功能观察程序流程,跟踪观察类的构造函数析构函数、成员函数的执行顺序。 2.实验内容 (1)定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run(提示信息“CPU开始运行”)、stop(提示信息“CPU停止运行”)。其中,为枚举类型CPU_Rank,定义为enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage为浮点型的电压值。在main函数中定义该类的一个对象,并调用公有成员函数,观察构造函数析构函数调用顺序。试试能不能在主函数中打印该对象的属性值,并分析原因。 (2)在上述CPU类中添加成员函数,分别用于设置及获取各属性的值,并在main函数中调用这些函数。观察当这些函数被设置成private或public时会有什么不同。 (3)定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象。CPU类的定义见实验任务1,RAM、CDROM类可以自由设置一些属性,并提供类似的run、stop这两个成员函数。在main函数中测试这个类,分析成员函数的运行顺序。 (4)设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”定义为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入显示。要求包括:构造函数析构函数、拷贝构造函数、内联成员函数。
最新发布
11-05
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值