|
程序实现的是用符号重载方法求三角形方形面积的和
问题和程序如下:
#include<iostream.h>
#include<math.h>
class Triangle
{
int x,y,z;
double area;
public:
Triangle(){}
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="<<area<<endl;
}
friend Triangle operator+(Triangle t1,Triangle t2) //函数重载,应该就是这个函数有问题
{ //语法没错误,可能是违反什么规则了
static Triangle st; // 请帮检查一下
st.area=t1.area+t2.area;
return st;
}
};
void main()
{
Triangle t1(3,4,5),t2(4,5,6), t3(5,6,7);
Triangle s;
cout<<"t1:"; t1.disparea();
cout<<"t2:"; t2.disparea();
cout<<"t3:"; t3.disparea();
s=t1+t2+t3; // 调试的时候是这句有误,我觉得应该是上面那个重载函数
cout<<"总面积="<<s<<endl; //弄错了,要改的话应该怎么该呢?
} |
|