设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 2013|回复: 2
打印 上一主题 下一主题

符号重载问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 01:45:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序实现的是用符号重载方法求三角形方形面积的和
问题和程序如下:
#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; //弄错了,要改的话应该怎么该呢?
}
2#
发表于 2009-11-3 01:45:54 | 只看该作者
cout<<"总面积="<<s<<endl; //你重载了<<操作符吗?


+重载那里用什么static?
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 01:45:56 | 只看该作者
两个面积的和返回一个形状干什么呀
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 06:03 , Processed in 0.096228 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表