對mutable的認識

2021-08-09 13:28:03 字數 671 閱讀 5083

首先我是在vs2015的環境下編寫**所以在這裡寫個簡單的類來說明問題的情況:

class a

//這裡我只實現所要用的函式

void a::updatecamview(camera *cam)

//在這裡說明一下getviewmatrix()的宣告是 const matrixcs getviewmatrix()const;

但是在vs2010下面是不報錯的,可以直接編譯通過,但是我用的vs2015是編譯不通過的,最後查到問題是

在m_matview物件前面要宣告mutable才能編譯通過,以前也沒有用過在這裡寫出來可以加以反思與思考。

原來mutable在c++中是為了突破const的限制而設定的。被mutable修飾的變數將永遠處於可變的狀態。

mutable的作用有兩點:

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

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

使用mutable的注意事項:

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

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

總之還是要在實踐中要體會它,這裡只是一種標記讓自己明白它的用處。

對「認識」的認識

很早就想談談關於 認識 的認識。這是乙個巨集大深刻的哲學問題。只是覺得沒有完全思考清楚,還以為觀點有些偏頗,擔心自己沒能力系統論述,就遲遲沒有動筆。但想到談論的問題本身就是乙個偏頗的問題,而且,我始終覺得,問題儘管偏頗,但卻不無道理。所以,提筆寫下這篇文字。正像思想的本質是不安一樣,認識的本質是片面...

對軟體的認識

1.軟體的定義 我們都知道軟體作為資訊化的核心,在個人學習 生活 娛樂,社會管理,國家經濟軍事的發展中都起到了至關重要的推動作用。他的發展速度及帶來的巨變都令人驚呼。那麼這種高投入 高產出 低能耗 無汙染的 軟體 到底是什麼呢?在大多數人的普遍認識中軟體或許就是程式設計人員通過 來實現電腦中的乙個可...

對網路的認識

一 網路有哪些構成要素 構建網路所需的硬體一般包括交換機 路由器等網路硬體,以及個人計算機 伺服器等計算機硬體,這些贏家統稱為節點,節點之間可以通過鏈路連線 二 客戶端伺服器型與點對點型 根據主機和客戶端承擔角色不同,可將網路分為客戶端伺服器型和點對點型 三 osi參考模型 各層 簡稱 正式名稱 說...