mutable 修飾的變數

2021-05-23 05:33:23 字數 420 閱讀 2595

mutable 可以用來指出,即使結構或者類變數為const,其某個成員也可以被修改   

在c++的類中, 如果乙個函式被const 修飾,那麼它將無法修改其成員變數的,

但是如果這個成員變數是被mutable修飾的話,則可以修改。   例如   

struct data   

char name[30];   

mutable int accesses;   ....   

const data veep =   

strcpy(veep.name,"jimmy");// not allowed   

veep.accesses++; // allowed   

veep 的const限定符禁止程式修改veep的成員,但access成員的mutable說明符表示access不受這種限制

變數與修飾變數

變數的屬性 儲存位置 變數使用的是那一段記憶體 作用域 變數的使用範圍 生命週期 建立時間 銷毀時間 變數的分類 全域性變數 定義在函式外。儲存位置 bss未初始化 被初始化了儲存在data。作用域 整個程式,比如在a.c定義了全域性變數,在b.c中也可以使用 生命週期 main函式執行前就被定義出...

const修飾的變數

const定義的常量不能直接被修改,只能間接被修改,如,通過指標。int main const int a 20 int p 10 指標變數指向的是a的位址,通過給指標變數p賦值來改變a中的值 printf d n a return 0 結果 10 在c語言中,當const修飾的識別符號,這個識別符...

thead local修飾的變數

thread local變數是c 11引入的乙個新的儲存型別,它將影響變數的生存期。命名空間下的全域性變數 類的靜態成員變數 區域性變數 下面通過乙個小例子觀察thread local修飾的變數的初始化過程與生存期 include include include using std cout usi...