永发信息网

急求C++程序 虚函数

答案:1  悬赏:0  手机版
解决时间 2021-04-29 04:06

实验内容

建立一个类A,A中定义一个虚函数,然后派生出两个类B和C

实验要求:

1 分别以public和private的方式派生两个类B和C

2 在基类A中添加一个虚函数和一个非虚函数,分别在派生类中对该虚函数进行重载;虚函数和非虚函数实现的功能自己决定

3 设计程序,要求能够分别用一般对象和指针对象实现各类中虚函数的调用和废墟函数的对应调用

4 对运行的结果进行分析并作出注释,对不能运行的代码注释并作出相应的原因分析。

谢谢给位高手了!!!!帮忙下~~~

最佳答案
#include <iostream.h>

class A
{
public:
virtual void vhello(){cout<<"A vhello!"<<endl;}
void hello(){cout<<"A hello!"<<endl;}
};


class B:public A
{
public:
void vhello(){cout<<"B vhello"<<endl;}
void hello(){cout<<"B hello!"<<endl;}
};

class C:private A
{
public:
void vhello(){cout<<"C vhello"<<endl;}
void hello(){cout<<"C hello!"<<endl;}
};

void main()
{
A *p;
p=new A;
p->hello();
p->vhello();
p=new B;
p->hello();
p->vhello();
//1.使用Private继承后,无法在类作用域外直接使用多态,
// 派生类指针无法自动转型为基类指针.
//2.从基类private继承虚函数后,若在派生类中将该虚函数重载,
// 并设置访问权限为public,该虚函数将为public成员函数.
//p=new C;
//p->hello();
//p->vhello();
}
结果分析
A hello!//使用A实例化的对象调用hello
A vhello!//使用A实例化的对象调用vhello
A hello!//由于指针为A类型 调用A的hello
B vhello!//vhello为虚函数 使用多态调用B的vhello
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
QQ华夏武魂用涅盘以后技能变不变
喜欢快乐男生的进。
我手机内存卡里有application这个文件夹 但里
怎解我电脑上QQ输入字母和汉字都可以,就是输
电力猫扩展器怎么设置,腾达的电力猫是可以自
淄博张店南定镇到潍坊港路线和公里数
装饰公司用英语怎么说,室内设计英语怎么说?
成龙在大兵小将后有什么情况
花,枝,茎类的中药卖回家就可以熬煮吗?是不是
急求一部小说!!急,急
HTCg6手机应用程序如何关闭
求湖心待月的歌词
要理由嘛,请问
DNF百花完美双爆流加点
西周时期的王位世袭制与夏商时期相比,最突出
推荐资讯
魔域里所说的BB 战年是什么?
为什么每次进空间都显示要求邀请好友开通空间
世吞赛?蛮新鲜的啊,什么东西啊?
求TCLM586手机游戏免费下载
求助论文一篇 县级财政国库集中收付改革之我
沈阳鸿洲机械地址在什么地方,想过去办事
怎么让电脑联不起网
DNF修罗不动冥王阵和鬼泣觉醒主动技能是什么
梦幻高手进…
最近很倒霉,能中五百万吗?
我现在是QQ会员,我怎么点亮腾讯图书的图标,
谁知道韩国连续剧(是美男啊).一共有几集啊?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?