C++習(xí)題與解析(重載-04)

字號(hào):

題6.設(shè)計(jì)一個(gè)三角形類Triangle,包含三角形三條邊長(zhǎng)的私有數(shù)據(jù)成員,另有一個(gè)重載運(yùn)算符“+”,以實(shí)現(xiàn)求兩個(gè)三角形對(duì)象的面積之和。
    解:
    在Triangle類中設(shè)計(jì)一個(gè)友元函數(shù)operator+(Triangle t1,Triangle t2),它重載運(yùn)算符"+",返回t1和t2兩個(gè)三角形的面積之和。
    本題程序如下:
    #include
    #include
    class Triangle
    {
    int x,y,z;
    double area;
    public:
    Triangle(int i,int j,int k)
    {
    double s;
    x=i;y=j;z=k;
    s=(x+y+z)/2.0;
    area=sqrt(s*(s-x)*(s-y)*(s-z));
    }
    void disparea()
    {
    cout<<"Area="<}
    friend double operator+(Triangle t1,Triangle t2)
    {
    return t1.area+t2.area;
    }
    };
    void main()
    {
    Triangle t1(3,4,5),t2(4,5,6);
    double s;
    cout<<"t1:"; t1.disparea();
    cout<<"t2:"; t2.disparea();
    s=t1+t2;
    cout<<"總面積="<    }
    本程序執(zhí)行結(jié)果如下:
    t1:Area=6
    t2:Area=9.92157
    總面積=15.9216