一、整体代码
01.cpp
#include <string>
using namespace std;
class Shape
{
public:
virtual void Draw() = 0;//纯虚函数
virtual ~Shape() {}//有向上转型,一般都申明成virtual
};
class Circle : public Shape
{
public:
void Draw()
{
cout<<"Circle::Draw() ..."<<endl;
}
~Circle()
{
cout<<"~Circle ..."<<endl;
}
};
class Square : public Shape
{
public:
void Draw()
{
cout<<"Square::Draw() ..."<<endl;
}
~Square()
{
cout<<"~Square ..."<<endl;
}
};
int main()
{
Shape* shape = new Circle;
shape->Draw();
}
二、解释
纯虚函数用于该方法在不同的子类中实现不一样
申明了纯虚函数,那么该类为抽象类,不能生成对象