//
.*Copyright(c) 2016.烟台大学计算机与控制工程学院
.*ALL rights reserved.
.*文件名称:main.cpp
.*作者:李鑫
.*完成日期:2016年6月20日
.*问题描述:阅读有关纯虚函数的程序,写出运行结果。
.*//
#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;
}
总结:
开始误以为输出为FSFS,正确为FFFS,因为Base &bref=first_obj,bref为引用,和first_obj占同一个内存,所以输出为F而不是S,
纯虚函数只在基类中声明不实现,而在派生类中实现。