C++ 基类怎么调用派生类成员

现在我写了一个抽象类,内有1个纯虚函数以及几个protected属性,然后有定义了2个派生类,在派生类中又增加了不同的属性,比如:抽象类为student,基类为under... 现在我写了一个抽象类,内有1个纯虚函数以及几个protected属性,然后有定义了2个派生类,在派生类中又增加了不同的属性,比如:抽象类为student,基类为undergraduate和graduate,既本科生和研究生,student中有学号、姓名、年龄3个属性,派生类有学科和成绩属性,两个派生类的学科不同,而基类也不可能调用派生类的封装的get和set方法(因为没有student类中定义的pretected属性),我怎么能输出的时候把1个学生(本科生或研究生)的信息用一个方法全部输出?谢谢啦!!! 展开
 我来答
flying_2011823
推荐于2016-04-20
知道答主
回答量:29
采纳率:0%
帮助的人:20.8万
展开全部
很简单,在基类中定义虚函数,例如函数原型为: virtual void PrintInfo();
在类 undergraduate 及 graduate 在 PrintInfo 中分别输出各自信息即可。
这时调用基类的 PrintInfo 函数就可输出派生类信息
NorthSeal
2011-08-27 · TA获得超过121个赞
知道答主
回答量:180
采纳率:0%
帮助的人:133万
展开全部
定义类实例时定义为派生类的,而不是基类的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
waddppt
2011-08-27 · TA获得超过352个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:64.2万
展开全部
只需在基类中定义一个输出函数如:
void printinfo(){/*输出学号、姓名、年龄*/}
在派生类中也分别定义一个输出函数:
void printinfo()
{
student::printinfo();//先执行基类的输出函数
.../*输出各自的学科及成绩*/
}
调用时用一个基类的指针分别指向不同的派生类对象就会输出对应对象的信息:
比如是
student *ptr;
undergraduate obju;
graduate objg;
/*初始化*/
ptr=&obju;
prt->printinfo();//输出本科生所有信息
prt=&objg;
ptr->printinfo();//输出研究生所有信息
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式