關於函式返回引用和const物件

2021-05-25 07:42:37 字數 537 閱讀 6323

class node

const node &fun(const node &obj)

return obj;

則可以這樣使用該函式:

node obj();

node res = fun(obj); //res的位址與obj的不同,其中任乙個變數值的改變不會影響另乙個變數

或const node &res = fun(obj); //必須是const &,而不是&,要與返回型別相同,此時res和obj的位址相同,其中乙個改變會影響另乙個

主要是為了防止在返回是呼叫複製建構函式返回乙個副本,比如 return a; 會複製乙個a的副本返回出去

為了返回的臨時物件被修改,使用返回const物件

如:obj1 + obj2 = net;

對於operator+操作符,如果返回的是非const物件,結果是net被賦給 obj1與obj2和的臨時物件,如果採用返回const物件則可提示這種錯誤

使:obj1 + obj2 = net報錯;

但 net = obj1 + obj2;仍然成立

返回const指標與返回const引用區別

const是c語言的一種關鍵字,起受保護,防止以外的變動的作用!可以修飾變數,引數,返回值,甚至函式體。const可以提高程式的健壯性,你只管用到你想用的任何地方。一 const修飾引數。const只能修飾輸入引數。1 如果輸入引數是指標型的,用const修飾可以防止指標被意外修改。2 如果引數採用...

關於const引用

簡單地說,const引用是指 指向const的引用 其實這樣說不恰當,在我的理解中,const引用中的const只是限定了不能通過此引用去修改變數的值 和const指標一樣,const引用可以與常量繫結,也可以與變數繫結,只是不能通過這個const引用來改變繫結物件的值,就如之後要講的const指標...

引用 const引用和非const引用

引用構造了物件的乙個同義詞,是c 物件的另乙個名字。在實際程式中,引用的主要作用是作函式的形參。引用是一種復合型別1,它通過在變數名前新增 來定義。在使用引用的情況下,每一種引用型別都關聯到某一其他型別。c 不能定義引用型別的引用,但是可以定義任何其他型別的引用。int a 100 int refa...