当: 我们希望基类不能产生对象,然而又希望将一些公用代码放在基类时,可以使用纯虚函数,并未纯虚函数定义函数体
#include <iostream>
using namespace std;
class base
{
public:
virtual void v() const = 0;
virtual void f() const = 0
{
cout << "base::f()\n";
}
};
void base::v() const
{
cout << "base::v()\n" << endl;
}
class d : public base
{
public:
void v() const
{
base::v();
}
void f() const
{
base::f();
}
};
int main()
{
d D;
D.v();
D.f();
base b; //error C2259: 'base' : cannot instantiate abstract class
system("pause");
return 1;
}