符号重载问题
程序实现的是用符号重载方法求三角形方形面积的和问题和程序如下:
#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; //弄错了,要改的话应该怎么该呢?
}
[此贴子已经被作者于2007-10-5 23:00:24编辑过]