代码:
#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;
}
运行结果:
学习心得:
纯虚函数只有函数的名字而不具备函数的功能,不能被调用。Base &bref=first_obj;这句话意思是bref为first_obj的引用,而bref=second_obj;是用second_obj为first_obj赋值然而并没有数据成员所以并没有什么用。所以输出FFFS。