1、
实现一个图形类(Shape),包含受保护成员属性:周长、面积,
公共成员函数:特殊成员函数书写
定义一个圆形类(Circle),继承自图形类,包含私有属性:半径
公共成员函数:特殊成员函数、以及获取周长、获取面积函数
定义一个矩形类(Rect),继承自图形类,包含私有属性:长度、宽度
公共成员函数:特殊成员函数、以及获取周长、获取面积函数
在主函数中,分别实例化圆形类对象以及矩形类对象,并测试相关的成员函数。
- #include <iostream>
- #include <cmath>
-
- #define PI acos(-1)
- using namespace std;
-
-
- //图形类
- class Shape
- {
- protected:
- int Zc; //周长
- int Mj; //面积
-
- public:
- //无参
- Shape()
- {
- cout<<"无参构造函数"<<endl;
- }
-
- //有参
- Shape(int z,int m):Zc(z),Mj(m)
- {
- cout<<"有参构造函数"<<endl;
- }
-
- //析构函数
- ~Shape()
- {
- cout<<"析构函数"<<endl;
- }
-
- //拷贝函数
- Shape(const Shape &other):Zc(other.Zc),Mj(other.Mj)
- {
- cout<<"有参构造函数"<<endl;
- }
-
- void show()
- {
- cout<<"周长为:"<<Zc<<endl;
- cout<<"面积为:"<<Mj<<endl;
- }
- };
-
- //圆形类
- class Circle:public Shape
- {
- private:
- int Bj; //半径
-
- public:
- //无参
- Circle()
- {
- cout<<"无参构造函数"<<endl;
- }
-
- //有参
- Circle(int z,int m,int b):Shape(z,m),Bj(b)
- {
- cout<<"有参构造函数"<<endl;
- }
-
- //析构函数
- ~Circle()
- {
- cout<<"析构函数"<<endl;
- }
-
- //拷贝函数
- Circle(const Circle &other):Shape(other.Zc,other.Mj),Bj(other.Bj)
- {
- cout<<"有参构造函数"<<endl;
- }
-
- //获取周长
- void get_zhouchang()
- {
- Zc=2*PI*Bj;
- }
-
- //获取面积
- void get_mianji()
- {
- Mj=PI*(pow(Bj,2));
- }
-
- };
-
- //矩形类
- class Rect:public Shape
- {
- private:
- int Cd; //长度
- int Kd; //宽度
- public:
- //无参
- Rect()
- {
- cout<<"无参构造函数"<<endl;
- }
-
- //有参
- Rect(int z,int m,int c,int k):Shape(z,m),Cd(c),Kd(k)
- {
- cout<<"有参构造函数"<<endl;
- }
-
- //析构函数
- ~Rect()
- {
- cout<<"析构函数"<<endl;
- }
-
- //拷贝函数
- Rect(const Rect &other):Shape(other.Zc,other.Mj),Cd(other.Cd),Kd(other.Kd)
- {
- cout<<"有参构造函数"<<endl;
- }
-
- //获取周长
- void get_zhouchang()
- {
- Zc=(Cd+Kd)*2;
- }
-
- //获取面积
- void get_mianji()
- {
- Mj=Cd*Kd;
- }
-
- };
-
- int main()
- {
- //圆形
- Circle C1(0,0,6);
- C1.get_zhouchang();
- C1.get_mianji();
- C1.show();
-
- //矩形
- Rect R1(0,0,3,4);
- R1.get_zhouchang();
- R1.get_mianji();
- R1.show();
-
- return 0;
- }
2、思维导图