[请益] 左值右值与物件传回

楼主: amamoimi (佛仔)   2023-11-24 06:36:45
#include <iostream>
using namespace std;
class A{};
A f (A x){
return x;
}
int main (){
A a;
f (a) = a;
return 0;
}
当我这样写的时候,程式是合法的
#include <iostream>
using namespace std;
class A{};
A f (A x){
return x;
}
int main (){
A a;
cout<<&f (a);
return 0;
}
但是这样写的时候变成不合法了。错误讯息是说不能对右值取址
但是,f(a)不是可以放在左边吗(例一)我的认知是,可以放在左边的就可以是左值不是吗
?xd
或者说,f(A1)本身可以放在左边也让我觉得很疑惑,因为他应该只是函数的传回值,如果
是一般的传回值的确应该是不能当左值(除了参照我想不到别的..)
有人可以帮我解惑吗 谢谢
p.s.c++关于内存的部分真的让我蛮苦手的...想请问有没有推荐的书呢,谢谢大家

Links booklink

Contact Us: admin [ a t ] ucptt.com