上机实验3继承机制

发布 2023-05-20 22:07:28 阅读 3293

实验三类的继承机制。

上机要求:学会类的继承机制的各种模型和三种继承方式,掌握继承成员的访问控制规则,赋值兼容规则和恢复访问控制权限的方法,派生类的构造函数与析构函数的使用等,并能利用继承手段解决实际问题。

一、讲解与演示。

例1:阅读和运行下列程序,体会赋值兼容规则。

#include<>

class base

public:

void setx(int i)

int getx()

private:

int x;

class derived:public base

public:

void sety(int i)

int sety()

private:

int y;

void main()

base *p;

base bob;

derived dob;

p=&bob;

p->setx(11);

cout<<"base object x:"

p->setx(55);

cout<<"derived object x:"sety(99);不可替换。

cout<<"derived object y:"<

例2:用继承机制解决实际问题。

建立一般的基类building,用来存储一座楼房的层数,房间数以及它的总面积数;建立派生类housing,继承building,并存储下面的内容:卧室和浴室的数量,另外,建立派生类officebuilding,继承building,并存储灭火器和**的数目。然后编制应用程序,建立住宅楼对象和办公楼对象,并输出它们的有关数据。

#include<>

class building

public:

building(int f,int r,double ft)

floors=f;

rooms=r;

footage=ft;

void show()

cout<<"floors:"

protected:

int floors;

int rooms;

double footage;

class housing:public building

public:

housing(int f,int r,double ft,int bd,int bth):building(f,r,ft)

bedrooms=bd;

bathrooms=bth;

void show()

cout<<"nhousing:";

building::show();

cout<<"bedrooms:"

private:

int bedrooms;

int bathrooms;

class officebuilding:public building

public:

officebuilding(int f,int r,double ft,int ph,int ex):building(f,r,ft)

phones=ph;

extinguishers=ex;

void show()

cout<<"nofficebuilding:";

building::show();

cout<<"phones:"

private:

int phones;

int extinguishers;

void main()

housing hob(5,7,140,2,2);

officebuilding oob(8,12,550,12,2);

二、上机内容。

请编写一个复数类complex和一个实数类real;将real类定义为complex类的子类;然后设计一个求解一元二次实系数方程的根的类root;并编写一个主函数加以演示。

#include <>

#include <>

#include <>

class complex

public:

complex(double r=0,double i=0)

virtual void print();

protected:

double re,im;

private:

class real:public complex

public:

real(double r=0):complex(r,0)

void print()

protected:

private:

class root

public:

root(double m1,double m2,double m3)

void print();

void solve();

protected:

double a,b,c;

private:

void complex::print()

cout<<"

void root::print()

cout<<"方程";

cout< cout< cout<<"x*x";

cout< cout< cout<}

void root::solve()

print();

cout<<"的解是:"

if(fabs(delta)<1e-5)

else if (delta>0)

elsevoid main()

double a,b,c;

cout<<"n请输入一元二次方程的三个系数a,b,c: "

cin>>a>>b>>c;

root rot (a,b,c);

上机实验作业 3 材料

wd01 上万北京市民云集人民大会堂聆听新年 上万北京市民选择在人民大会堂 这个象征着国家最高权力机关所在地度过了本世纪最后的时光。在人民大会堂宴会厅 这个通常举行国宴的地方,当新世纪钟声敲响的时候,数千名参加 世纪之约 大型新年 舞会的来宾停住了他们的舞步,欢呼声响彻七千多平方米的富丽堂皇的宴会大...

第3次上机实验

一 进入调试环境。1 进入dos环境 启动菜单中选择 然后进入最后一个盘中,如d盘 c d enter 建议大家的文件都建立在最后一个盘,如d盘,如果建在c 计算机重启后会被系统自动删除。2 运行鼠标驱动程序d mouse 3 编辑汇编源文件 d edit 4 编译 d tasm 5 链接 d tl...

实验2与实验3上机题

实验2与实验3上机参考题。1.输入一个字符,判断它是否是小写字母,是小写字母,则将它转换成大写字母,如果不是,则不转换,然后输出所得到字符。include main char ch printf enter a character to ch scanf c ch输入字符ch if ch a ch ...