/*Copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称 :
*作 者 : 李钊
*完成日期 : 2016年5月24号
*版 本 号 : v1.0
*
*问题描述 : 阅读程序
*输入描述 :
*程序输出 :
*/
#include <iostream>
using namespace std;
class Base
{
public:
virtual void Who() =0;
};
class FirstDerived:public Base
{
public:
void Who() { cout<<"F"; }
};
class SecondDerived:public Base
{
public:
void Who() { cout<<"S"; }
};
int main()
{
FirstDerived first_obj;
SecondDerived second_obj;
Base &bref=first_obj;
bref.Who();
bref=second_obj;
bref.Who();
Base *bp;
bp=&first_obj;
bp->Who();
bp=&second_obj;
bp->Who();
return 0;
}
运行结果:
FFFS
分析:
Base类为基类,FirstDerived和SecondDerived都为Base类的派生类,且Base类中的Who函数为纯虚函数,对象bref调用时只能输出F,而bp为指针所以输出时可以输出S