实现一个图形类(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;
}
运行结果:
思维导图