设为首页收藏本站

新微赢技术网

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

【求助】操作符重载问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 03:04:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
定义了一个类
class A
{

int a[10];
......
};

怎么定义“==”“>”“<”的重载
2#
发表于 2009-11-3 03:04:19 | 只看该作者
int & operator==(const A&S1,const A&S2)
{
for(int i=0,intj=0;i<10;i++)
{
if(s1.a[i]==s2.a[i])
{
j++;
}
}
if(j=10){return 1;}
else{return 0;}
}
LZ,BOOL 也可
剩下的类似 变个符号 和里面的判断条件
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 03:04:20 | 只看该作者
谢谢二楼的大哥帮忙
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 03:04:21 | 只看该作者
不应该返回引用
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 03:04:22 | 只看该作者
楼上的能否解释一下,如果返回引用会产生什么问题呢?return 1;对1返回引用到底会怎样呢?
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-3 03:04:23 | 只看该作者
嘿嘿,你返回了引用的话就会出现隐患,因为引用一个常量是没有意义的,当有人恶意地将 (a==b)=2的时候,程序就运行错误,
一般来说都是将重载运算符号定义为成员变量,如果要返回值就可以return *this,这样就有效防止copy constructor
回复 支持 反对

使用道具 举报

7#
发表于 2009-11-3 03:04:24 | 只看该作者
我师傅来了
明白那个问题了
回复 支持 反对

使用道具 举报

8#
发表于 2009-11-3 03:04:25 | 只看该作者
以下是引用热情依然在2006-6-9 13:11:34的发言:

嘿嘿,你返回了引用的话就会出现隐患,因为引用一个常量是没有意义的,当有人恶意地将 (a==b)=2的时候,程序就运行错误,
一般来说都是将重载运算符号定义为成员变量,如果要返回值就可以return *this,这样就有效防止copy constructor
恩,是有问题 ,谢拉
没考虑这么多,嘿嘿
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 07:25 , Processed in 0.083354 second(s), 8 queries , Gzip On, Memcache On.

Powered by xuexi

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

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