注册 登录
编程论坛 C++教室

有关运载符重载的问题

GeneralJing 发布于 2011-11-01 12:46, 624 次点击
问下大侠们,最近学C++看到运载符重载那一章,有些痛苦,不太好理解,有个地方一直不是很清楚,就是在运载符重载时,什么时候加&号什么时候不加?看了好几本书,都没有找到满意的答案,希望哪位大侠帮帮我!
5 回复
#2
jcw081201102011-11-01 14:44
不是和你说过了么!
你得问题很宽泛;对于自身的使用可以用& 这个可以看做取地址操作和引用标示符! 你问得是返回类型什么时候加&号~
那就是引用~意思就是返回一个引用! 这里就存在一个问题! 一个引用一定不能指向一个局部对象;否则在该函数结束后局部对象也会撤销!  
#3
GeneralJing2011-11-01 16:36
回复 2楼 jcw08120110
那我想问下,什么时候算引用?=号算引用,其他的呢 []这个也算引用吧?能不能总结一下?对于新手有帮助呵呵
另外 Complex Complex::operator=(Complex c)
{
  real = c.real;
  image = c.image;
return *this;
}
还是我理解错了,比如说=号,它既可以做引用,也可以不做引用?它不是一成不变的?其实我想问,我怎么知道哪个是引用?哪个不是?
对于你说的+、+=例子我能理解,但是对于具体的定义里,有没有什么方法可以确定引用?

[ 本帖最后由 GeneralJing 于 2011-11-1 16:41 编辑 ]
#4
zhoufeng19882011-11-01 17:34
楼主是不是把问题想复杂了?自己写些例子体会一下
#5
pangding2011-11-01 20:45
逻辑上该用引用的就要用引用。其实也有好多可以用引用的地方也可以不引用,并没有什么必需的规则。
楼主应该好好体会体会引用的作用。

不过必须用引用的地方就一定要用。比如楼主提到的 operator []。
基本上,当你需要的不仅是它的值,而是它本身的时候,你就必须用引用。它和 C 语言里左值的概念有一定的联系,楼主可以对比着学一学。
#6
GeneralJing2011-11-04 13:59
谢谢大家!我再继续研究中……
1