題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
解:
在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