| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 668 人关注过本帖
标题:[求助]关于继承的一个问题
只看楼主 加入收藏
Aiyyo
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-6-4
收藏
 问题点数:0 回复次数:7 
[求助]关于继承的一个问题
编写一个学生和教师数据输入与显示程序,学生的数据包括:学号、姓名、班级号、成绩;教师的数据有:教师编号、姓名、职称、部门。
要求将编号、姓名输入和显示设计成一个类person,并做为学生类student和教师类teacher的基类。
设计一个person类,并由它派生student类和teacher类。

关于继承有些东西总是弄不好 ,书里说得也不是很明白,大家帮忙弄一个让我参考一下
搜索更多相关主题的帖子: 继承 
2006-07-08 15:36
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

你应该看到书上写过,把星球做为基类,那么可以派生出更具体的东西(比如地球),因为地球“是一个”星球,所以可以这样理解,学生是一个人,老师同样也是一个人,那么老师和学生都具有人类应该具有的性质。(地球具备星球具备的性质)这就是继承的好处了。
class CPerson
{
char *name; //所有人类都具有的性质,姓名
...
};

class CStudent:public CPerson
{
//学生类更具体的性质
float score; //成绩
char sID; //学号
int cNo; //班级
...
};

class CTeacher:public CPerson
{
//老师类更具体的性质
char* tID; //老师编号
char *department; //部门
char *level; //职称等级
...
};
这就是普通公有继承的大概(方法没有列出)


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-08 16:28
Aiyyo
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-6-4
收藏
得分:0 

那输入和显示全部学生或老师信息的方法放在哪个类里好一点?放persong类里就不能显示全部信息了

2006-07-09 12:22
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

既然要输出全部信息(学生和老师),那么可以用数组,也可以用链表,这样才能输出全部的对象信息


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-09 13:10
Aiyyo
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-6-4
收藏
得分:0 
我不是指输出所有老师或所有学生的信息,而是某一个学生或老师对象的全部信息,姓名,编号等等
2006-07-09 13:30
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
那么你可以在CPerson中写个纯虚拟函数virtual void print()=0;
然后在两个派生类中分别写一个:
void CStudent::print(){cout<<sID<<" "<<name<<" "<<cNo<<" "<<score<<endl;}
void CTeacher::print(){cout<<tID<<" "<<name<<" "<<department<<" "<<level<<endl;}
在main函数中,只需要声明一个基类的指针CPerson *p;
那么用p=new Cstudent;就可以p->print();调用Cstudent中的print函数,同样的方法也可以用这个指针调用CTeacher中的print函数.

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-10 20:49
爱雪飘扬
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-5-29
收藏
得分:0 
用虚函数是不更好些了啊?

[此贴子已经被作者于2006-7-12 13:51:20编辑过]

2006-07-12 13:48
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
纯虚拟函数是一种特殊的虚拟机制~!它不允许派生类没有这个方法的重写

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-12 16:28
快速回复:[求助]关于继承的一个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025748 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved