传递多态对象
题目描述
程序填空输出指定结果
关于输入
无
关于输出
见样例输出
参考答案
#include <iostream>
class A {
public:
void Fun() const {
std::cout << "A::Fun" << std::endl;
}
virtual void Do() const {
std::cout << "A::Do" << std::endl;
}
};
class B : public A {
public:
virtual void Do() const {
std::cout << "B::Do" << std::endl;
}
};
class C : public B {
public:
void Do() const {
std::cout << "C::Do" << std::endl;
}
void Fun() const {
std::cout << "C::Fun" << std::endl;
}
};
void Call(
const A& a
) {
a.Fun();
a.Do();
}
int main() {
A a;
const C c{};
Call(a);
Call(c);
}