所以我寫了一段代碼,我用new運算符在本地作用域函數內創建一個對象,並將引用作爲指針返回。C++ new operator scope
A* operator+(A that){
int sumA = a + that.getA();
int sumB = b + that.getB();
return new A(sumA, sumB);
}
在我認爲這是行不通的,因爲對象是局部範圍內產生,應該是暫時的,但它編譯和運行。任何人都可以向我解釋這個嗎?我相信還有其他的東西有能力打破範圍和東西。如果可能的話,你能給我一些例子嗎?不勝感激!
[我應該什麼時候在C++中使用new關鍵字?](http://stackoverflow.com/questions/655065/when-should-i-use-the-new-keyword-in-c) – aruisdante
@aruisdante這個問題如何與你鏈接的那個重複? OP詢問爲什麼指針可以被返回,而不會將對象指向「超出範圍」。 – yjwong
@yjwong因爲它顯示了對「新」功能的明確誤解。鏈接的副本解釋。如果OP瞭解「新」做了什麼,這個問題就不會被問到(或者更確切地說,會問到一個非常不同的問題)。 – aruisdante