我寫代碼,找出兩個向量的總和:如何在C++中返回對象而不超出範圍?
// Vector operations
TIntV& FindSum(const TIntV& v1, const TIntV& v2) {
AssertR(v1.Len() == v2.Len(), TStr::Fmt("Vector lengths unequal"));
TIntV vSum = TIntV(v1);
for (int i = 0; i < vSum.Len(); i++) {
vSum[i] += v2[i];
}
return vSum;
}
我需要返回的總和,但我正在逐漸回到零向量,因爲VSUM似乎是走出去的範圍。
utilities.cpp:6: warning: reference to local variable ‘vSum’ returned
什麼是最好的方式來返回一個變量,而不會超出範圍?此外,我們如何能夠返回整數,浮點數等,而不必擔心這一點?
只是不要通過參考返回它。 – chris
我以爲我以價值回報它?我將vSum聲明爲TIntV,而不是TIntV& – Jessica
@eeeeeeeeee:您的函數返回類型是'TIntV&'。 –