格式
class类名{public:……virtual 返回值类型 函数名( 参数表 ) = 0; //纯虚函数……};
#include <iostream> // 编译预处理命令#include <string> // 编译预处理命令using namespace std; // 使用命名空间std /********* Begin *********/// 声明形状类Shapeclass Shape{ public: virtual string GetName() const = 0; // 返回某形状的名字的纯虚函数 virtual double GetArea() const = 0; // 返回某形状的面称的纯虚函数};// 声明矩形类Rectangleclass Rectangle: public Shape{private:double width; // 宽 double height; // 长 public:// 公有函数Rectangle(double w, double h): width(w), height(h) {} // 构造函数string GetName() const; // 返回矩形的名字 double GetArea() const; // 返回矩形的面称};// 定义矩形类的成员函数string Rectangle::GetName() const // 返回矩形的名字{ return "矩形"; }// 定义矩形类Rectangle的成员函数GetArea()double Rectangle::GetArea() const // 返回矩形的面积{ return width*height;}// 声明圆形类Circleclass Circle: public Shape{private:double radius; // 半径 public:// 公有函数Circle(double r): radius(r) {} // 构造函数string GetName() const; // 返回矩形的名字 double GetArea() const; // 返回矩形的面称};// 定义圆形类Circle的成员函数string Circle::GetName() const // 返回圆形的名字{ return "圆形";}// 定义圆形类Circle的成员函数GetArea()double Circle::GetArea() const // 返回圆形的面积{ return 3.14*radius*radius;}void ShowArea(const Shape &sp) // 显示相关图形的面积{ cout<<sp.GetName()<<"的面积为"<<sp.GetArea()<<endl; }