实验4文档格式.docx

上传人:b****2 文档编号:4267591 上传时间:2023-05-03 格式:DOCX 页数:10 大小:69.43KB
下载 相关 举报
实验4文档格式.docx_第1页
第1页 / 共10页
实验4文档格式.docx_第2页
第2页 / 共10页
实验4文档格式.docx_第3页
第3页 / 共10页
实验4文档格式.docx_第4页
第4页 / 共10页
实验4文档格式.docx_第5页
第5页 / 共10页
实验4文档格式.docx_第6页
第6页 / 共10页
实验4文档格式.docx_第7页
第7页 / 共10页
实验4文档格式.docx_第8页
第8页 / 共10页
实验4文档格式.docx_第9页
第9页 / 共10页
实验4文档格式.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验4文档格式.docx

《实验4文档格式.docx》由会员分享,可在线阅读,更多相关《实验4文档格式.docx(10页珍藏版)》请在冰点文库上搜索。

实验4文档格式.docx

3、从CPerson类派生出CTeacher类,添加属性:

职务、部门和工作时间;

4、由CStudent类派生出CGraduate类,添加属性:

研究方向和导师;

5、由CGraduate和CTeacher共同派生出在职研究生类CGradonWork

6、对上述类分别定义其中的构造函数和输出函数,并在主函数中定义对象进行测试,测试的代码大致如下:

CGradonWorkgradonWork("

tzcer"

"

男"

33,"

15"

2003"

335,"

computer"

tangmin"

jsj"

sxxy"

2002-8"

);

gradonWork.Print();

其中CGradonWork的构造函数参数分别对应的属性是一个在职的研究生对象,其姓名为tzcer,性别为男,33岁,学号15,2003年读在职,入学成绩335,就读计算机方向,其导师tangmin,同时tzcer也是sxxy部门,jsj专业的老师,2002-8月入职。

要求记录输出信息并说明实验步骤和解决方法!

7、问题:

何为继承二义性,在本实验中哪个地方存在二义性,你是如何解决的?

三、上机过程原始记录(源程序等)

class 

person{

char 

Name[10];

Sex;

int 

Age;

public:

person(char 

*name,int 

age,char 

sex)

{

strcpy(Name,name);

Age=age;

Sex=(sex=='

m'

?

'

:

f'

}

virtual 

void 

set()

age;

 

name[10];

sex;

cout<

<

"

请输入姓名:

endl;

cin>

>

name;

请输入年龄:

请输入性别:

Sex=sex;

}

showinfo()

Name<

\t'

Age<

Sex<

endl<

system("

pause"

};

student:

public 

person

{

number;

//定义学好 

time;

//定义入学时间 

float 

score1;

//定义入学成绩 

student(int 

num,int 

time,float 

sco1,char 

sex):

person(name,age,sex)

score1=sco1;

sco[3];

person:

set();

请输入学号:

;

number=number;

请输入入学时间:

time=time;

请输入入学成绩:

sco[0];

score1=sco[0];

number<

time<

score1<

teacher:

title[30];

//定义职称

dept[30];

//定义部门

length;

//定义工作时间 

teacher(char 

*tit,char 

*de,int 

len,char 

*name,char 

sex,int 

age):

strcpy(title,tit);

strcpy(dept,de);

length=len;

tit[30];

de[30];

len;

//定义工作时间

职称:

tit;

部门:

de;

工作时间:

title<

dept<

length<

graduate:

student

RFields[30];

//定义研究方向 

tutor[30];

//定义导师

graduate(char 

*RF,char 

*tu,int 

*number,int 

score1):

student(number,time,score1)

strcpy(RFields,RF);

strcpy(tutor,tu);

RF[30];

//定义研究方向

tu[30];

研究方向:

RF;

导师:

tu;

RFields<

tutor<

GradonWork:

Graduate,public 

Teacher

CGradonWork 

gradonWork("

其中CGradonWork 

的构造函数参数分别对应的属性是一个在职的研究生对象,其姓名为tzcer,性别为男,33岁,学号15,2003年读在职,入学成绩335,就读计算机方向,其导师tangmin,同时tzcer也是sxxy部门,jsj专业的老师,2002-8月入职。

要求记录输出信息并说明实验步骤和解决方法!

主要代码:

#include<

iostream.h>

stdio.h>

string.h>

stdlib.h>

hhh()

1.基类基本情况:

2.老师类基本情况:

3.学生类基本情况:

0.退出"

请选择种类(0~3)"

请选择:

main()

person 

*d[3];

per("

wenpiao"

20,'

student 

stu(11290033,2011,523,"

teacher 

tea("

jiaoshou"

dianxin"

20,"

chenxiaochang"

40,'

d[0]=&

per;

d[1]=&

stu;

d[2]=&

tea;

choice;

for(;

cls"

if 

(choice>

=0&

&

choice<

=3) 

switch 

(choice)

case 

1:

d[choice-1]->

showinfo();

break;

2:

d[choice]->

3:

d[choice-2]->

0:

exit(0);

}

else 

错误输入!

请重新选择:

hhh();

运行记录:

一般说来,在派生类中对基类成员的访问应该是唯一的,但是,由

多继承情况下,可能造成对基类中某成员的访问出现了不唯一的情况,则称为对基类成员访问的二义性问题。

使用基类

A{

f();

B{

g();

C:

A,public 

B;

h();

//这里派生类A和基类B中都有f(),基类B和基类C中都有g() 

,所以访问出现二义

使用基类名为避免这种二义:

obj.A:

//A中的f() 

obj.B:

//B中的f() 

这种使用基类名来控制成员访问的规则称为支配原则

obj.g();

//隐含用C的g()

//用B的g()

四、上机结果及分析

1、

2、

3

4.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2