思维导图
小练习
实现一个图形类(Shape),包含受保护成员属性:周长、面积,公共成员函数:特殊成员函数书写
定义一个圆形类(Circle),继承自图形类,包含私有属性:半径,公共成员函数:特殊成员函数、以及获取周长、获取面积函数
定义一个矩形类(Rect),继承自图形类,包含私有属性:长度、宽度,公共成员函数:特殊成员函数、以及获取周长、获取面积函数
在主函数中,分别实例化圆形类对象以及矩形类对象,并测试相关的成员函数。
#include <iostream>#define PI 3.14using namespace std;class Shape{
protected:double area; //面积double round; //周长
public://无参构造Shape(){}//有参构造Shape(double a,double rd):area(a),round(rd){}//拷贝构造函数Shape(const Shape &other):area(other.area),round(other.round){}//析构函数~Shape(){}void show(){cout<<"*******************"<<endl;cout<<"该图形的周长为"<<round<<endl;cout<<"该图形的面积为"<<area<<endl;}
};class Circle:public Shape{
private:int radius;
public://无参构造Circle(){}//有参构造Circle(int rs):radius(rs){}//拷贝构造函数Circle(const Circle &other):Shape(Shape(other.area,other.round)),radius(other.radius){}//析构函数~Circle(){}//获取周长函数void get_round(){round=2*PI*radius;}//获取面积函数void get_area(){area=PI*radius*radius;}
};class Rect:public Shape{
private:int length; //长度int width; //宽度
public://无参构造Rect(){}//有参构造Rect(int l,int w):length(l),width(w){}//拷贝构造函数Rect(const Rect &other):Shape(Shape(other.area,other.round)),length(other.length),width(other.width){}//析构函数~Rect(){}//获取周长函数void get_round(){round=2*(length+width);}//获取面积函数void get_area(){area=length*width;}
};int main()
{Circle c(5);c.get_round();c.get_area();c.show();Rect r(4,7);r.get_area();r.get_round();r.show();return 0;
}