C++中一些你不知道的冷知识
1、explicit關鍵字
explicit用來防止由構造函數定義的隱式轉換,比如:
class Base base=10;
即Base類只有一個int類型的變量,explicit使用了以后,就不允許這樣寫。
被聲明為explicit的構造函數通常比非explicit的構造函數更受歡迎,因為它們禁止編譯器執行非預期的類型轉換。
2、volatile關鍵字
volatile變量是隨時可能發生變化的,它告訴編譯器,與volatile變量有關的運算,不要進行任何優化,每次讀取volatile變量時都重新從內存讀取,不會有臨時寄存器來存放變量的值。
volatile可以適用于基礎類型,例如:
int,char,long……
也適用于C的結構和C++的類。當對結構或者類對象使用volatile修飾的時候,結構或者類的所有成員都會被視為volatile.
一般的在多線程環境中,涉及到某些變量同步的操作時,使用volatile會更好;
3、mutable關鍵字
mutable用于類的非靜態和非常量數據成員,一般類的成員函數被聲明為const,就表示不會修改類的數據成員,但如果要在常成員函數中修改類的非靜態和非常量數據成員,則可以使用mutable修飾該數據成員,如下:
編譯會報錯:test.cpp:13: 錯誤:increment of data-member ‘demo::m_nCount’ in read-only structure,但如果改為如下代碼:
則編譯通過。
在學習C/C++或者想要學習C/C++可以加我們的學習交流QQ群:712263501群內有相關學習資料
總結
以上是生活随笔為你收集整理的C++中一些你不知道的冷知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个qq男生网名唯美!
- 下一篇: C语言优势大揭露,你还在等什么呢?