| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 751 人关注过本帖
标题:[求助]菜鸟求助c
只看楼主 加入收藏
apodemas
Rank: 1
等 级:新手上路
帖 子:153
专家分:0
注 册:2005-4-22
收藏
 问题点数:0 回复次数:7 
[求助]菜鸟求助c
我一直不明白关于返回*this的意思
请看这个例子:
这是一个三维坐标的类
其中一个等号的操作"=",等同于拷贝构造函数,把一个类的数据成员赋给另一个类.
Three Three::operator= (Three op2) {   //Three即三维的类
x=op2.x;y=op2.y;z=op2.z;   //标志为(1)
return *this;                        //标志为(2)
}
但是,我觉得,其实步奏(1)已经完成拷贝了,还要(2)做什么呢?改成void不行吗?
而且,既然返回了,因为=属于重载,相当于 obj.=,那也就是说没有=号了,那到底返回给谁呢?返回什么呢?(我想,*this是不是就是相对应的对象名呢?那返回他有什么用呢?谁接收呢?)

请大家教教我吧~~~谢谢.
搜索更多相关主题的帖子: return 做什么 而且 
2005-08-08 21:13
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
返回一个引用和不返回引用的区别, 给你举个例子就清楚了.
你对cout 一定不会陌生,
我可以在一个cout  下连续使用 输出运算符, 凭的是什么呢? 凭的就是它自身返回一个引用啊, 也就是说,返回了一个cout Object,这个cout Object 又可以调用函数 operator<<()  , 这就是返回引用的作用,如果不返回引用,而是void,那你就的一行一行写,也就是说.
如果 cout<<"Hello "<<"world";   
在那个函数原形定义为 void  型的话,你就必须分开写两行
cout<<"Hello ";
cout<<"world";

希望给你解释清楚了.

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-08-09 10:50
apodemas
Rank: 1
等 级:新手上路
帖 子:153
专家分:0
注 册:2005-4-22
收藏
得分:0 
还是不明白,返回和这个有什么关系,如果不返回不是根本不能输出了么?
可能因为对返回引用不了解,不好意思...

2005-08-09 17:02
Stayor
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2005-8-4
收藏
得分:0 
这部分比较难,我也没理解。
2005-08-09 20:11
kevinhong
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2005-7-15
收藏
得分:0 
*this它是一个指针,表示指针指向当前的变量!

饮水思源.懂得感恩!!!
2005-08-10 10:00
apodemas
Rank: 1
等 级:新手上路
帖 子:153
专家分:0
注 册:2005-4-22
收藏
得分:0 
以下是引用kevinhong在2005-8-10 10:00:22的发言: *this它是一个指针,表示指针指向当前的变量!
这个我当然知道啊~

2005-08-10 19:57
Antigloss
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2004-12-30
收藏
得分:0 
以下是引用apodemas在2005-8-9 17:02:36的发言: 还是不明白,返回和这个有什么关系,如果不返回不是根本不能输出了么? 可能因为对返回引用不了解,不好意思...
如果没有返回,那就不能这样输出 std::cout << "ab" << "bc" << '\n'; 而只能这样 std::cout << "ab"; std::cout << "bc"; std::cout << '\n';
2005-08-13 21:46
Antigloss
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2004-12-30
收藏
得分:0 
去看 c++ primer 第三版,有中文版的。那本书写得很详细!
2005-08-13 21:47
快速回复:[求助]菜鸟求助c
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016654 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved