詳解C 中mutable的用法

2022-10-03 23:06:28 字數 1070 閱讀 9410

**編譯執行環境:vs2017+win32+debug

mutalbe的程式設計客棧中文意思是「可變的,易變的」,是constant(即c++中的const)的反義詞。在c++中,mutable也程式設計客棧是為了突破const的限制而設定的,被mutable修飾的變數將永遠處於可變的狀態。

mutable的作用有兩點:

(1)保持常量物件中大部分資料成員仍然是「唯讀」的情況下,實現對個別資料成員的修改;

(2)使類的const函式可以修改物件的mutable資料成員。

使用mutable的注意事項:

(1)mutable只能作用於類的非靜態和非常量資料成員。

(2)在乙個類中,應盡量或者不用mutable,大量使用mutable表示程式設計存在缺陷。

示例**如下:

#include

using namespace std;

//mutable int test;//編譯出錯

class student

string getname() const

void pinttimes() const

{ cout《程式設計客棧getname().c_str()<

程式輸出結果:

張三1mutable不能修飾const資料成員容易理解,因為mutable與const本是反義,同時修飾不是自相矛盾嗎。mutable不能修飾static資料成員,因為static資料成員儲存在data段或bss段,屬於類,不屬於類物件,那麼常物件和常函式可以對其任意地修改,所以類的static資料成員根本不需要mutable的修飾,但對於常物件的資料成員則不可以被修改,若想修改,則需要mutable的修飾。示例**如下:

#include

using namespace std;

class student

{ string name;

public:

static int test1;

void modify() const

{ test1=15;

cout<<<:test1 s. modify return>

程式輸出結果是:

5

c 中mutable的用法

multable雖然在日常的工作中很少用到,但是畢竟multable屬於c 語法中的乙個關鍵自所以,在大多數的面試中經常被提到,所以如果你要重新找工作了還是要了解這個關鍵字的 再了解multable之前我們要先認真的回顧一下什麼叫常函式,常函式無非就是帶const修飾的函式罷了,為什麼要有常函式這個...

C 中mutable 中的用法

關鍵字 mutable 的中文意思是 可變的 易變的 與 constant 即c 中const 是反義詞。c 中的 mutable 是為了突破 const 限制而設定的,被 mutable 修飾的變數將永遠處於可變狀態,即使是位於 const 修飾的函式中。mutable 又是乙個奇怪的修飾符 sp...

C 中mutable的使用

mutable的中文意思是 可變的,易變的 跟constant 既c 中的const 是反義詞。在c 中,mutable也是為了突破const的限制而設定的。被mutable修飾的變數,將永遠處於可變的狀態,即使在乙個const函式中。我們知道,如果類的成員函式不會改變物件的狀態,那麼這個成員函式一...