实现一个图形类(Shape),包含受保护成员属性:周长、面积,
公共成员函数:特殊成员函数书写
定义一个圆形类(Circle),继承自图形类,包含私有属性:半径
公共成员函数:特殊成员函数、以及获取周长、获取面积函数
定义一个矩形类(Rect),继承自图形类,包含私有属性:长度、宽度
公共成员函数:特殊成员函数、以及获取周长、获取面积函数
在主函数中,分别实例化圆形类对象以及矩形类对象,并测试相关的成员函数。
代码:
#include <iostream>
using namespace std;
//定义一个图形类
class Shape
{
protected:double peri;double area;
public://无参构造函数Shape(){cout<<"无参构造"<<endl;}//有参构造函数Shape(double l,double s):peri(l),area(s) {cout<<"有参构造"<<endl;}//析构函数~Shape(){cout<<"析构函数"<<endl;}//输出周长和面积
};
//定义一个圆形类
class Circle:public Shape
{
private:double rad;
public://无参构造函数Circle() {cout<<"Circle::无参构造"<<endl;}//有参构造函数Circle(int r):rad(r){cout<<"有参构造"<<endl;}//获取圆形周长bool Circle_peri(){peri=2*3.14*rad;if(peri>0){return true;}else{return false;}}//获取圆形面积bool Circle_area(){area=3.14*rad*rad;if(area>0){return true;}else{return false;}}//输出周长和面积void show(){Circle_peri();Circle_area();cout<<"周长="<<peri<<endl;cout<<"面积="<<area<<endl;}
};
//定义一个矩形类
class Rect:public Shape
{
private:double length;double width;
public://无参构造函数Rect() {cout<<" Rect::无参构造"<<endl;}//有参构造函数Rect(double a,double b):length(a),width(b){cout<<"有参构造"<<endl;}//获取矩形周长bool Rect_peri(){peri= length*2+width*2;if(peri>0){return true;}else{return false;}}//获取矩形面积bool Rect_area(){area=length*width;if(area>0){return true;}else{return false;}}//输出周长和面积void show(){Rect_peri();Rect_area();cout<<"周长="<<peri<<endl;cout<<"面积="<<area<<endl;}
};int main()
{Circle c1(3);c1.show();Rect r1(3,4);r1.show();return 0;
}
运行结果:
思维导图