說我這樣定義的結構:這是否有效使用返回引用?
struct point {
int x;
int y;
}
const point & clone(point& pt) {
point * new_pt;
* new_pt = pt; // copy info, new is called?
return *new_pt;
}
我的理解是*new_pt = pt
隱式調用new
和堆爲複製的結構分配所需的存儲,所以new_pt
不指向一個臨時變量,我可以返回對它的提及,是嗎?
*「我的理解是'* new_pt = pt隱式地調用new並在複製結構的堆上分配必要的存儲空間」*您從哪裏獲得了這個想法?請停止嘗試通過試驗和錯誤學習C++,它會讓你無處可去。相反,從一本好書中系統地學習它。 –
*「我的理解是* new_pt = pt隱式地調用new並在複製結構的堆上分配必要的存儲空間」*出於好奇,爲什麼您的理解?這絕對不會發生。看看這個經典:http://cslibrary.stanford.edu/104/看c + +版本。 –
我不明白爲什麼一個問題和例子的敵對態度。這個例子取自於第400頁的「C++ Primer Plus」第6版2011年版本。變量的確切命名已更改爲使其成爲獨立的。書中的逐字代碼是「調用clone()隱藏()對'new'的調用......」因此使用'unique_ptr'更好。但這不是問題的關鍵。我被看作是一個'新'的存在,因此是一個問題。 – python152