以下兩者有什麼區別嗎?有本地變量參考的C++
const int64 x = some_struct.x;
const int64& x = some_struct.x;
一個比另一個更好嗎?我最近看到這個引用被用在某處,但不明白爲什麼有人會這麼做。
以下兩者有什麼區別嗎?有本地變量參考的C++
const int64 x = some_struct.x;
const int64& x = some_struct.x;
一個比另一個更好嗎?我最近看到這個引用被用在某處,但不明白爲什麼有人會這麼做。
您可以將引用看作原始變量的別名。
some_struct.x = 1;
const int64 x1 = some_struct.x;
const int64& x2 = some_struct.x;
std::cout << x1 << "," << x2 << std::endl; // should be "1,1"
some_struct.x = 2;
std::cout << x1 << "," << x2 << std::endl; // should be "1,2"
第一種情況是從some_struct.x
得到的值的副本,而第二種情況依然與其綁定。所以如果some_struct.x
更改其值,x
將不會受到影響,但&x
將引用更改。
沒有better
,因爲這取決於使用此代碼的意圖。
@JamesRoot你爲什麼要把它標記爲重複?我的問題主要在於如果參考對POD有任何意義。我四處搜尋,找不到任何問題。如果您發現某些內容,請將其張貼並標記爲重複。 – Undivided
你將不得不問問原始程序員。沒有明顯的原因。 –
@未經授權這真的很奇怪。我打算將它標記爲重複,並決定它不是,所以我只是讓它成爲。無論如何,我不知道它爲什麼標記它。 –