c++多态(设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符+,以实现求两个三角形对象的面积之和,进一步实现3个或更多的三角形对象相加的面积之和。)

设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符“+",以实现求两个三角形对象的面积之和,进一步实现3个或更多的三角形对象相加的面积之和。
分析提示:在Triangle类中设计一个友元函数double operator+(Triangle t1,Triangle t2),它重载运算符“+",返回t1和t2两个三角形的面积之和。

#include<iostream>
#include<cmath>
using namespace std;
class Triangle
{
public:
    Triangle()
{
    a=0;
    b=0;
    c=0;
};
Triangle(double a,double b,double c)
{
    this->a=a;
    this->b=b;
    this->c=c;

}

double area()
{
        p=(a+b+c)/2;
    s=sqrt(p*(p-a)*(p-b)*(p-c));
    return s;
}

friend double operator+(Triangle t1,Triangle t2);
friend double operator+(double t,Triangle t1);
private:
    double a,b,c;
    double s,p;//s表示面积,p代表三条边之和的1/2
};
double operator+(Triangle t1,Triangle t2)
{
    return t1.area()+t2.area();
}
double operator+(double t,Triangle t1)
{
    return t+t1.area();

}
int main()
 {
     Triangle tri1(3,4,5),tri2(6,8,10);
     double area1=tri1+tri2;//或者double area1=tri1.area()+tri2.area();
     cout<<area1<<endl;
     Triangle tri3(9,12,15);
     double area2=tri1+tri2+tri3;//double area2=tri1.area()+tri2.area()+tri3.area();
     cout<<area2<<endl;
     return 0;
 }

“你似春风百花闻,一掠山河万木生。”

  • 11
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值