-4
const int& foo(int i)
{
return i;
}
作爲一名計算機科學專業的學生,我很想知道這個函數是如何工作的。在函數聲明中,返回類型是對int的const引用,但函數內部我們傳遞的只是一個int,我讀過的大部分介紹書都說返回類型應該與我們返回的匹配,任何人都可以幫助我理解實際發生了什麼?C++函數的返回類型
const int& foo(int i)
{
return i;
}
作爲一名計算機科學專業的學生,我很想知道這個函數是如何工作的。在函數聲明中,返回類型是對int的const引用,但函數內部我們傳遞的只是一個int,我讀過的大部分介紹書都說返回類型應該與我們返回的匹配,任何人都可以幫助我理解實際發生了什麼?C++函數的返回類型
在函數聲明的返回類型是const引用到INT,但我們傳遞的函數裏面只是一個在
C++有隱式轉換,例如:
double function(int n) {
return n;
}
有一個從int到double的隱式轉換。
就你而言,你有一個從int到引用的轉換。這是正確的,並編譯,但在這種情況下,你的變量將被「刪除」在函數結束。這可能是一個問題,如果你以後使用它,這被認爲是undefined behaviour
我可以假設有什麼像const int&temp = I;而從這個函數返回的東西是temp? –
沒有任何優化,是的。通過優化,.things可以不同。 – iBug
你能給我看一個優化的例子嗎?謝謝。 –