符号重载的问题
A & operate = (const A &other);与A operate = (const A &other);
有什么区别?
2007-08-07 21:08
2007-08-07 21:42
2007-08-07 22:07
what this sentence mean?
why can't me input chiese word?

2007-08-07 22:10
what this sentence mean?
why can't me input chiese word?
比如,重载下标操作符
A& operator[](int i);
引用返回的话,可以直接修改A的值,比如B[1] = ..
如果非引用返回的话,就不行了。

2007-08-07 22:23
2007-08-07 22:39

2007-08-07 22:42
本来是可以的,但是最好返回引用
1。效率,返回非引用会调用一次构造函数
2。与标准类型一致,如
int i,j=1,k=2;
(i=j)=k;//这样就改变了操作的先后,i=j如果不返回i的引用,那么k的值就无法付给i了

2007-08-07 22:51
谢谢你们的讨论我认真看了下,并对此希望再给上我的理解
与ls说的首先是效率,由于符号重载一般返回的都是对象和对象指针,都不是简单变量.
引用调用可以提高效率,避免调用构造函数.
但是我想问下,怎么值的返回为什么不能成为左值?
补充:不过引用返回的都很容易犯个错误,就是返回栈的变量,由于函数自动释放形参,若返回的是返回栈的变量都将出错
在问下楼上的,再解释下第二点2。与标准类型一致,

2007-08-08 03:35

2007-08-08 09:58