一个C++重载问题
题目:设计一个三角形类Triangle,包含三角形3条边长的私有数据成员,另有一个重载运算符+,以实现两个三角形的面积和。我的写法如下:
#include <iostream.h>
#include<math.h>
class Triangle
{int a,b,c;
double S;
public:
Triangle(int i,int j,int k)
{a=i;
b=j;
c=k;
S=sqrt((1/2.0)*(a+b+c)*((1/2.0)*(a+b+c)-a)*((1/2.0)*(a+b+c)-b)*((1/2.0)*(a+b+c)-c));
}
Triangle(Triangle &);
int geta()
{return a;}
int getb()
{return b;}
int getc()
{return c;}
friend float fd(Triangle &n,Triangle &p,Triangle &q);
void operator+(Triangle);
void display();
};
float fd(Triangle &n,Triangle &p,Triangle &q)
{double a=n.a;
double b=p.b;
double c=q.c;
return float(sqrt((1/2.0)*(a+b+c)*((1/2.0)*(a+b+c)-a)*((1/2.0)*(a+b+c)-b)*((1/2.0)*(a+b+c)-c)));
}
void Triangle::operator +(Triangle &m)
{S+=m.S;
return S;
}
void Triangle::display()
{double S=sqrt((1/2.0)*(a+b+c)*((1/2.0)*(a+b+c)-a)*((1/2.0)*(a+b+c)-b)*((1/2.0)*(a+b+c)-c));
cout<<"S="<<S<<endl;}
void main()
{Triangle fd1(3,4,5);
Triangle fd2(6,8,10);
fd1.display();
fd2.display();
Triangle fd3=fd1+fd2;
fd3.display();
}
实在不知道错误是怎么回事,请高手帮忙解决!急 急!!!!!