what this sentence mean?why can't me input chiese word?
比如,重载下标操作符A& operator[](int i);引用返回的话,可以直接修改A的值,比如B[1] = ..如果非引用返回的话,就不行了。
嗯,这样说我就明白了,不过在重载付值操作的时候这样做只是为了和标准的类型一至,可以用连等号。
本来是可以的,但是最好返回引用1。效率,返回非引用会调用一次构造函数2。与标准类型一致,如 int i,j=1,k=2; (i=j)=k;//这样就改变了操作的先后,i=j如果不返回i的引用,那么k的值就无法付给i了
谢谢你们的讨论我认真看了下,并对此希望再给上我的理解与ls说的首先是效率,由于符号重载一般返回的都是对象和对象指针,都不是简单变量.引用调用可以提高效率,避免调用构造函数.但是我想问下,怎么值的返回为什么不能成为左值?补充:不过引用返回的都很容易犯个错误,就是返回栈的变量,由于函数自动释放形参,若返回的是返回栈的变量都将出错在问下楼上的,再解释下第二点2。与标准类型一致,