请问 重载=运算符的函数为什么 必须是类的成员函数而不能是类的友元函数啊?

xjyr 2008-03-06 06:17:35
请问 重载=运算符的函数为什么 必须是类的成员函数而不能是类的友元函数啊?
先谢谢啦
...全文
284 13 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
arong1234 2010-07-03
  • 打赏
  • 举报
回复
它允许是友元对你有什么特别的好处?我看不出它作为友元的任何理由!

友元是为了那些不属于本类但是和本类有特别关系的函数和类的,而operator=当然是属于本类的,自我复制是OO的一个本质特征之一![Quote=引用 4 楼 xjyr 的回复:]
就是,人家标准委员会规定,俺们没办法不听话.
----------------------------
为什么这样规定啊?
[/Quote]
Yanger_xy 2010-07-03
  • 打赏
  • 举报
回复
规矩,无规矩不成方圆嘛,让你怎么用你就怎么用就行了.
liutengfeigo 2010-07-03
  • 打赏
  • 举报
回复
假如是全局的你认为合理不?
dirkjww 2010-07-03
  • 打赏
  • 举报
回复
你想想"="的左右 把右操作数赋值给左操作数
那么 你对一个对象用"="号.那是不是左操作数肯定是这个数呢?
也就是说 传过去this指针啊....

假设搞成友元不你可以让第二个参数成为赋值号左边的..
是不是乱套了`?

我感觉其实这个就和流运算一个道理.为什么流运算符要搞成友元?
就是因为格式是cin>>a
而不是a>>cin
lyle3 2008-03-20
  • 打赏
  • 举报
回复
支持坏,哈哈
paidfighting 2008-03-20
  • 打赏
  • 举报
回复
违反规定是不对的,小心被抓 - -

友元的话,可以实现很多逻辑意义下不应该有的赋值,这样不就乱了套了
xjyr 2008-03-20
  • 打赏
  • 举报
回复
我想肯定是有原因的!
taodm 2008-03-07
  • 打赏
  • 举报
回复
楼主啊,'1'为什么念"yi"?
  • 打赏
  • 举报
回复
假如可以随便写那么基本类型=允许不允许重载?
xjyr 2008-03-07
  • 打赏
  • 举报
回复
就是,人家标准委员会规定,俺们没办法不听话.
----------------------------
为什么这样规定啊?
hastings 2008-03-06
  • 打赏
  • 举报
回复
就是,人家标准委员会规定,俺们没办法不听话.
  • 打赏
  • 举报
回复
规定=的重载必须是类成员函数
hityct1 2008-03-06
  • 打赏
  • 举报
回复
即可以是类的成员函数,也可以是类的友元函数。
vc6.0好像不支持 是类的友元函数。
相关推荐
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-03-06 06:17
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下