1. 程式人生 > >C++中函式返回值的引用型別與非引用型別的區別

C++中函式返回值的引用型別與非引用型別的區別

返回值為引用型別的函式某些情況下可作為表示式的左值,而非引用的則一般不可以。

函式返回值若為引用型別,當返回的是函式的引用形參時,則是對函式外的變數的引用,函式可以作為表示式的左值(被賦予新值)。
而當函式返回的是非引用型別時,返回的值是函式內隱式生成的臨時變數,當函式結束析構時釋放,函式作為左值被賦予新值沒有意義或產生錯誤。(例外情況,當返回的是函式中用new等動態記憶體分配函式建立的指標時,可作為左值。)

注:“引用型別”並非是一種新的型別,也沒有這種型別,只是為了口頭上的方便說的,是對某某型別變數的引用的個人說法。