最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解C++編程中的靜態(tài)成員與可變數(shù)據(jù)成員

 更新時間:2016年01月22日 15:51:59   投稿:goldensun  
這篇文章主要介紹了詳解C++編程中的靜態(tài)成員與可變數(shù)據(jù)成員,是C++入門學習中的基礎知識,需要的朋友可以參考下

靜態(tài)成員
類可以包含靜態(tài)成員數(shù)據(jù)和成員函數(shù)。當數(shù)據(jù)成員被聲明為“靜態(tài)”時,只會為類的所有對象保留一個數(shù)據(jù)副本。
靜態(tài)數(shù)據(jù)成員不是給定的類類型的對象的一部分。因此,靜態(tài)數(shù)據(jù)成員的聲明不被視為一個定義。在類范圍中聲明數(shù)據(jù)成員,但在文件范圍內(nèi)執(zhí)行定義。這些靜態(tài)類成員具有外部鏈接。下面的示例闡釋了這一點:

// static_data_members.cpp
class BufferedOutput
{
public:
  // Return number of bytes written by any object of this class.
  short BytesWritten()
  {
   return bytecount;
  }

  // Reset the counter.
  static void ResetCount()
  {
   bytecount = 0;
  }

  // Static member declaration.
  static long bytecount;
};

// Define bytecount in file scope.
long BufferedOutput::bytecount;

int main()
{
}

在前面的代碼中,該成員 bytecount 在類 BufferedOutput 中聲明,但它必須在類聲明的外部定義。
在不引用類類型的對象的情況下,可以引用靜態(tài)數(shù)據(jù)成員??梢垣@取使用 BufferedOutput 對象編寫的字節(jié)數(shù),如下所示:

long nBytes = BufferedOutput::bytecount;

對于存在的靜態(tài)成員,類類型的所有對象的存在則沒有必要。還可以使用成員選擇(. 和 –>)運算符訪問靜態(tài)成員。例如:

BufferedOutput Console;

long nBytes = Console.bytecount;

在前面的示例中,不會評估對對象(Console) 的引用;返回的值是靜態(tài)對象 bytecount 的值。
靜態(tài)數(shù)據(jù)成員遵循類成員訪問規(guī)則,因此只允許類成員函數(shù)和友元擁有對靜態(tài)數(shù)據(jù)成員的私有訪問權(quán)限。


可變數(shù)據(jù)成員
此關鍵字只能應用于類的非靜態(tài)和非常量數(shù)據(jù)成員。如果某個數(shù)據(jù)成員被聲明為 mutable,則從 const 成員函數(shù)為此數(shù)據(jù)成員賦值是合法的。
語法

mutable member-variable-declaration;

備注
例如,以下代碼在編譯時不會出錯,因為 m_accessCount 已聲明為 mutable,因此可以由 GetFlag 修改,即使 GetFlag 是常量成員函數(shù)。

// mutable.cpp
class X
{
public:
  bool GetFlag() const
  {
   m_accessCount++;
   return m_flag;
  }
private:
  bool m_flag;
  mutable int m_accessCount;
};

int main()
{
}

相關文章

  • Qt+OpenCV利用幀差法實現(xiàn)車輛識別

    Qt+OpenCV利用幀差法實現(xiàn)車輛識別

    所謂幀差法也就是對連續(xù)圖像幀做差分運算,其結(jié)果與定義好的閾值比較,若大于閾值則為運動目標值為1,否則值為0?。本文將利用幀差法實現(xiàn)車輛識別,感興趣的可以了解一下
    2022-08-08
  • Linux環(huán)境g++編譯GDAL動態(tài)庫操作方法

    Linux環(huán)境g++編譯GDAL動態(tài)庫操作方法

    下面小編就為大家?guī)硪黄狶inux環(huán)境g++編譯GDAL動態(tài)庫操作方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • c語言中形參與實參的關系解讀

    c語言中形參與實參的關系解讀

    這篇文章主要介紹了c語言中形參與實參的關系,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • C/C++ winsock實現(xiàn)不同設備實時通訊的示例代碼

    C/C++ winsock實現(xiàn)不同設備實時通訊的示例代碼

    這篇文章主要為大家詳細介紹了C/C++如何利用winsock連接實現(xiàn)不同設備實時通訊,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-09-09
  • Visual Studio2022+QT6創(chuàng)建桌面應用實現(xiàn)

    Visual Studio2022+QT6創(chuàng)建桌面應用實現(xiàn)

    本文主要介紹了Visual Studio2022+QT6創(chuàng)建桌面應用實現(xiàn),文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-02-02
  • C++調(diào)用EasyX庫實現(xiàn)嫦娥奔月小游戲

    C++調(diào)用EasyX庫實現(xiàn)嫦娥奔月小游戲

    這篇文章主要為大家詳細介紹了C++如何調(diào)用EasyX庫編寫一個簡單的嫦娥奔月小游戲,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下
    2023-09-09
  • 淺談C++流庫的基本結(jié)構(gòu)

    淺談C++流庫的基本結(jié)構(gòu)

    本文主要介紹了淺談C++流庫的基本結(jié)構(gòu),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • 一文帶你深入了解Qt中的順序容器類與關聯(lián)容器類

    一文帶你深入了解Qt中的順序容器類與關聯(lián)容器類

    Qt中也有很多容器類,他們在存取速度、內(nèi)存開銷等方面進行了優(yōu)化,使用起來更輕量級、更便捷,下面就跟隨小編一起來學習一下它們的具體使用吧
    2024-04-04
  • 用C語言實現(xiàn)簡單的計算器功能

    用C語言實現(xiàn)簡單的計算器功能

    這篇文章主要為大家詳細介紹了用C語言實現(xiàn)簡單的計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++實現(xiàn)矩陣原地轉(zhuǎn)置算法

    C++實現(xiàn)矩陣原地轉(zhuǎn)置算法

    這篇文章主要介紹了C++實現(xiàn)矩陣原地轉(zhuǎn)置算法,非常經(jīng)典的算法,需要的朋友可以參考下
    2014-08-08

最新評論

钦州市| 勐海县| 木里| 顺昌县| 十堰市| 大冶市| 夏邑县| 随州市| 宁国市| 偏关县| 芷江| 洛隆县| 呼图壁县| 民县| 吉水县| 许昌县| 汾阳市| 手游| 辛集市| 开江县| 上杭县| 尖扎县| 卫辉市| 内丘县| 怀化市| 侯马市| 札达县| 上饶县| 张家川| 新蔡县| 二手房| 丹巴县| 曲阳县| 柳州市| 寻甸| 古蔺县| 托克托县| 红原县| 汾西县| 福清市| 广东省|