第十三周 任务3

来源:互联网 发布:php http get请求 编辑:程序博客网 时间:2024/04/30 20:55
#include <iostream>#include <string>using namespace std;class Shape{public:virtual double area( ) const { return 0; }virtual void shape_name() const = 0;};class Circle:public Shape{public:Circle ( double c ){this -> c = c;}virtual double area ( ) const{return 3.1415926 * c * c;}virtual void shape_name( ) const{cout << "circle:";}protected:double c;};class Rectangle : public Shape{public:Rectangle ( double r1, double r2 ){this -> r1 = r1;this -> r2 = r2;}virtual double area()const{return r1 * r2;}virtual void shape_name( ) const{cout << "Rectangle:";}protected:double r1;    double r2;};class Triangle: public Shape{public:Triangle ( double t1, double t2 ){this -> t1 = t1;this -> t2 = t2;}virtual double area()const{return t1 * t2 / 2;}virtual void shape_name()const{cout << "Triangle:";}protected:double t1;    double t2;};int main( ){Circle c1 ( 12.6 ), c2 ( 4.9 );Rectangle r1 ( 4.5, 8.4 ), r2 ( 5.0, 2.5 );Triangle t1 ( 4.5, 8.4 ), t2 ( 3.4, 2.8 );Shape * pt [6] = { &c1, &c2, &r1, &r2, &t1, &t2 };double areas = 0;for ( int i = 0; i < 6; i ++ ){areas = areas + pt [i] -> area ( );}cout << "totol of all arease=" << areas << endl;system ( "pause" );return 0;}
 
运行结果:
totol of all arease=648.149请按任意键继续. . .

原创粉丝点击