這顯然是不好:C++返回後是否爲「無效」引用?
int& GetInvalidIntPtr(){
int i;
return i;
}
這是我的例子:
FVector& GetDirectionFromCamera(){
return GetActorLocation() - GetCameraComponent()->GetComponentLocation();
}
的FVector基本上有3個浮動,這就是爲什麼我想返回引用,而不是一個副本。但是,我相信的計算結果是存儲在堆棧上的吧?
或者是分配在堆上的結果,因爲我立即返回它?
在第二個例子中,它取決於函數和運算符的簽名和行爲。所以,如果他們返回對在堆上創建的對象的引用,那麼你就可以。如果不是,你不行。 –
不知道'operator-'返回什麼是不可能的,但正確的答案很簡單:返回一個副本,停止嘗試優化複製三個浮點數的微小成本。 [保持簡單,愚蠢](https://en.wikipedia.org/wiki/KISS_principle)。 –