#include using namespace std;

class Shape{ public: virtual double area()=0; virtual double perim()=0; virtual ~Shape()=0; }; Shape::~Shape(){}

class Rectangle:public Shape{ double length,width; public: Rectangle(double l=1,double w=1):length(l),width(w){} double area(){return lengthwidth;} double perim(){return 2(length+width);} }; class Circle:public Shape{ double radius; public: Circle(double r=1):radius(r){} double area(){return 3.14radiusradius;} double perim(){return 23.14radius;} }; int main(){ Shape *p; Rectangle r(4,5); Circle c(4); p = &r; cout<<"Rectangle area is "<area()<<endl; cout<<"Rectangle perim is "<perim()<<endl;

p = &c;
cout<<"Circle area is "<<p->area()<<endl;
cout<<"Circle perim is "<<p->perim()<<endl;

return 0;

}

定义一个抽象图形类Shape定义纯虚函数area和perim用以计算面积和周长。从Shape派生出矩形Rectangle、圆形Circle具体派生类。程序中通过基类指针纯虚析构来调用派生类对象中的重写的纯虚函数计算不同形状对象的面积和周长。c++

原文地址: https://www.cveoy.top/t/topic/b7f1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录