C++ 基类怎么调用派生类成员
现在我写了一个抽象类,内有1个纯虚函数以及几个protected属性,然后有定义了2个派生类,在派生类中又增加了不同的属性,比如:抽象类为student,基类为under...
现在我写了一个抽象类,内有1个纯虚函数以及几个protected属性,然后有定义了2个派生类,在派生类中又增加了不同的属性,比如:抽象类为student,基类为undergraduate和graduate,既本科生和研究生,student中有学号、姓名、年龄3个属性,派生类有学科和成绩属性,两个派生类的学科不同,而基类也不可能调用派生类的封装的get和set方法(因为没有student类中定义的pretected属性),我怎么能输出的时候把1个学生(本科生或研究生)的信息用一个方法全部输出?谢谢啦!!!
展开
3个回答
展开全部
定义类实例时定义为派生类的,而不是基类的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只需在基类中定义一个输出函数如:
void printinfo(){/*输出学号、姓名、年龄*/}
在派生类中也分别定义一个输出函数:
void printinfo()
{
student::printinfo();//先执行基类的输出函数
.../*输出各自的学科及成绩*/
}
调用时用一个基类的指针分别指向不同的派生类对象就会输出对应对象的信息:
比如是
student *ptr;
undergraduate obju;
graduate objg;
/*初始化*/
ptr=&obju;
prt->printinfo();//输出本科生所有信息
prt=&objg;
ptr->printinfo();//输出研究生所有信息
void printinfo(){/*输出学号、姓名、年龄*/}
在派生类中也分别定义一个输出函数:
void printinfo()
{
student::printinfo();//先执行基类的输出函数
.../*输出各自的学科及成绩*/
}
调用时用一个基类的指针分别指向不同的派生类对象就会输出对应对象的信息:
比如是
student *ptr;
undergraduate obju;
graduate objg;
/*初始化*/
ptr=&obju;
prt->printinfo();//输出本科生所有信息
prt=&objg;
ptr->printinfo();//输出研究生所有信息
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询