您的位置:首页 > 编程语言 > C语言/C++

多态与虚函数编程题 #3(C++程序设计第6周)

2015-12-22 23:30 357 查看
问题描述

下面的程序输出结果是:

A::Fun

A::Do

A::Fun

C::Do

请填空:

#include <iostream>
using namespace std;
class A {
private:
int nVal;
public:
void Fun()
{ cout << "A::Fun" << endl; }
virtual void Do()
{ cout << "A::Do" << endl; }
};
class B:public A {
public:
virtual void Do()
{ cout << "B::Do" << endl; }
};
class C:public B {
public:
void Do( )
{ cout << "C::Do" << endl; }
void Fun()
{ cout << "C::Fun" << endl; }
};
void Call(
// 在此处补充你的代码
) {
p->Fun(); p->Do();
}
int main() {
Call( new A() );
Call( new C() );
return 0;
}


输入



输出

A::Fun

A::Do

A::Fun

C::Do

样例输入



样例输出

A::Fun

A::Do

A::Fun

C::Do

提示

提交作业时只提交补充的代码

源码

#include <iostream>
using namespace std;
class A
{
private:
int nVal;
public:
void Fun()
{ cout << "A::Fun" << endl; }
virtual void Do()
{ cout << "A::Do" << endl; }
};
class B:public A
{
public:
virtual void Do()
{ cout << "B::Do" << endl; }
};
class C:public B
{
public:
void Do( )
{ cout << "C::Do" << endl; }
void Fun()
{ cout << "C::Fun" << endl; }
};
void Call(
// 在此处补充你的代码
A* p
)  {
p->Fun();  p->Do();
}
int main()
{
Call( new A() );
Call( new C() );
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: