定义一个图形抽象类,完成三角形、圆形、矩形的周长和面积计算

 

#include<iostream>
using namespace std;

class graph // 抽象父类
{
public:
	virtual void Area() = 0;//定义纯虚函数
    virtual void Perimeter() = 0; 
};

class Circle :public graph // 定义圆类
{
public:
	Circle(float r) :radius(r)// 定义构造函数
    {
        cout << __func__ << ":" << __LINE__ <<endl;
    }
    virtual ~Circle()//定义析构函数
    {
        cout << __func__ << ":" << __LINE__ <<endl; 
    }
	virtual void Area() //重新定义虚函数

	{
		cout << "Area of Circle:" << endl << 3.14 * radius * radius << endl;
	}

    virtual void Perimeter()//重新定义虚函数
    {
        cout << "Perimeter of Circle" << endl << 3.14 * 2 * radius << endl;
    }

private:
	float radius;
};

class Rectangle :public graph // 定义矩形类
{
public:
	Rectangle(float w, float h) :width(w), height(h)// 定义构造函数
    {
        cout << __func__ << ":" << __LINE__ <<endl;
    }
   virtual ~Rectangle()//定义析构函数
    {
        cout << __func__ << ":" << __LINE__ <<endl;
    }
	virtual void Area() 

	{
		cout << "Area of Rectangle:" << endl << width * height <<  endl;
	}
    virtual void Perimeter()
    {
        cout << "Perimeter of Rectangle:" <<endl << 2*(width + height) << endl;
    }

private:
	float width;
	float height;
};

class Triangle :public graph // 定义三角形类
{
public:
	Triangle(float l, float w,float h) :width(l), height(w),length(h) // 定义构造函数
    {
        cout << __func__ << ":" << __LINE__ <<endl;
    }
   virtual ~Triangle()//定义析构函数
    {
        cout << __func__ << ":" << __LINE__ <<endl;
    }
	virtual void Area()

	{
		cout << "Area of Triangle:" << endl << 0.5 * length * height << endl;
	}
    virtual void Perimeter()
    {
        cout << "Perimeter of Triangle:" << endl << length + width + height << endl;
    }

private:
	float length;
	float width;
    float height;
};

int main()
{
	Circle circle(6); //圆
	circle.Area();
    circle.Perimeter();
	
    Rectangle rectangle(3, 4); //矩形
	rectangle.Area();
    rectangle.Perimeter();

	Triangle triangle(5,4,3);   //三角形
	triangle.Area();
    triangle.Perimeter();
	
	return 0;
}

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值