const關鍵字修飾左值引用的2個作用

2021-08-28 13:11:54 字數 1037 閱讀 3759

首先看下面的例子:

#include

#include

void

printstringl

(std::string &str)

void

printstringlr

(const std::string &str)

intmain()

執行上面程式,會發現編譯錯誤,看完下面,應該就能理解為什麼了。

const在函式形參中的第乙個作用想必很多人都知道,就是為了設定被修飾的變數為唯讀狀態(即不允許被修改)。但是應該有挺多人忽略了其第二個作用。

其第二作用就如同上面例子中的printstringlr函式,當const修飾乙個左值引用(型如const type &)時,表示該左值引用既可以引用乙個左值,也可以引用乙個右值(字面值或臨時物件),而不帶const修飾的左值引用(型如type &)只能引用乙個左值,不能引用乙個右值。

所以,當const修飾函式形參中的左值引用型別時,表示該左值引用既可以引用乙個左值,也可以引用乙個右值,如printstringlr函式;而沒加const的左值引用形參,只能接受乙個左值,如printstringl函式。

注:將 「hello world!」 傳遞給printstringlprintstringlr函式,會構造出乙個臨時的string物件。

const修飾左值引用型別時(const type &),作用有兩個:

所以,當const修飾函式形參中的左值引用時,表示該形參既可接受乙個左值亦可接受乙個右值。

const關鍵字修飾類

include using namespace std if 0 1 const修飾資料成員 成員函式 類物件 2 修飾資料成員的時候 只能在形參列表裡面初始化。被const修飾的資料成員,不能被修改 3 修飾成員函式 位置 函式宣告之後,實現體之前。要求在宣告和定義處都要有const 意義 con...

引用和const關鍵字

引用的概念 1.定義引用時一定要將其初始化成某個變數 2初始化後,他就一直引用這個變數,不會在引用其他變數了,也就是說引用是至始至終的 3.引用只能引用變數,不能引用常量和表示式double a 4,b 5 double r1 a double r2 r1 r2 10 cout r1 b 不是引用,...

C 中const關鍵字修飾

2.const應用到函式中 3.類中定義常量 const特殊用法 4.const定義常量物件,以及常量物件的用法 const名叫常量限定符,用來限定特定變數,以通知編譯器該變數是不可修改的。習慣性的使用const,可以避免在函式中對某些不應修改的變數造成可能的改動。c 中const的主要用法大致上可...