免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2499 | 回复: 2
打印 上一主题 下一主题

[C++] 运算符 重载 不懂呀,求教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-11-06 10:56 |只看该作者 |倒序浏览
  1. class Man
  2. {
  3. public:
  4.     void show()
  5.     {   
  6.         cout << "this is man" << endl;
  7.     }   
  8. };
  9. class Person
  10. {
  11. public:
  12.     Person():m_man(new Man)  {}   

  13.     Man *operator ->()
  14.     {   
  15.         return m_man;
  16.     }   
  17.     Man * operator()()
  18.     {   
  19.         return m_man;
  20.     }   
  21. private:
  22.     Man *m_man;
  23. };
  24. int main()
  25. {
  26.     Person p1;
  27.     //Man *m1 = p1->;
  28.     p1->show();
  29.     Man *m2 = p1();
  30.     return 0;
  31. }
复制代码
我就是 不理解 -> 这个运算符重载了,   Man * operator ->()    这个运算符 不是 返回 Man *  那不是应该和 Man * operator()() 一样, 也可以  Man *m1 = p1-> ;  
虽然 知道 这个语法 肯定 是错的,可是 我 就是 扭不过这个弯,为啥 不行  
对于p1->show()  是不是应该用  p1->->show();
求解

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
2 [报告]
发表于 2013-11-06 11:08 |只看该作者
是的,但你语法错了,试试 Man* p = p1.operator ->();
p1->show() 相当于 p1.operator ->()->show();

论坛徽章:
9
摩羯座
日期:2013-08-15 15:18:48狮子座
日期:2013-09-12 18:07:47金牛座
日期:2013-09-16 13:23:09辰龙
日期:2013-10-09 09:03:27白羊座
日期:2013-10-17 13:32:44子鼠
日期:2014-04-23 15:09:38戌狗
日期:2014-09-17 11:37:542015年亚洲杯之韩国
日期:2015-03-26 10:16:442015亚冠之武里南联
日期:2015-08-18 14:55:52
3 [报告]
发表于 2013-11-06 13:23 |只看该作者
运算符重载,没规定重载后的隐式使用方法相同啊?如果你以一种运算符的隐式使用方法去强行理解另外一种,这样不是等于用小无相功催动易筋经,最终可是会内伤的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP