-1
class MyClass
{
public:
int x=0;
};
void doSomething(MyClass obj)
{
obj.x=1;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
MyClass obj;
doSomething(obj);
qDebug()<< "x is " << obj.x;
return a.exec();
}
我知道如果我在這裏傳遞指針,x
將是1
,我的問題是obj.x=1
中發生了什麼;聲明在這裏?爲什麼x 0在這裏,x = 1語句中發生了什麼?
它正在修改複製的對象。基本上是不操作的,因爲該對象立即超出範圍。 – AndyG
@AndyG我不會稱它爲臨時的,它有一個名字。 – Angew
@Angew:編輯的正確性 – AndyG