欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

靜態(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ù)成員
此關(guān)鍵字只能應(yīng)用于類的非靜態(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()
{
}

相關(guān)文章

  • C語言 function recursion函數(shù)遞歸詳解

    C語言 function recursion函數(shù)遞歸詳解

    遞歸指的是在函數(shù)的定義中使用函數(shù)自身的方法,舉個例子: 從前有座山,山里有座廟,廟里有個老和尚,正在給小和尚講故事呢!故事是什么呢?"從前有座山,山里有座廟,廟里有個老和尚,正在給小和尚講故事呢!故事是什么呢?"從前有座山,山里有座廟,循環(huán)下去
    2021-10-10
  • VScode+ESP32簡單環(huán)境搭建

    VScode+ESP32簡單環(huán)境搭建

    本文章向大家介紹ESP32-C3搭建環(huán)境教程,主要包括ESP32-C3搭建環(huán)境教程使用實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 淺析c#中WebBrowser控件的使用方法

    淺析c#中WebBrowser控件的使用方法

    以下是對c#中WebBrowser控件的使用方法進行了詳細的分析介紹,需要的朋友參考下
    2013-07-07
  • C語言實現(xiàn)掃雷游戲及其優(yōu)化

    C語言實現(xiàn)掃雷游戲及其優(yōu)化

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)掃雷游戲及其優(yōu)化,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Win10中VC2013安裝Unit test組件出現(xiàn)問題解決方案

    Win10中VC2013安裝Unit test組件出現(xiàn)問題解決方案

    本文給大家分享的是個人在Win10中VC2013安裝Unit test組件出現(xiàn)問題并最終找到解決辦法的過程,有需要的小伙伴可以參考下
    2016-03-03
  • 詳解C++中的左值,純右值和將亡值

    詳解C++中的左值,純右值和將亡值

    C++中本身是存在左值,右值的概念,但是在C11中又出現(xiàn)了左值,純右值,將亡值得概念;這里我們主要介紹這些值的概念,感興趣的可以了解一下
    2022-09-09
  • C語言實現(xiàn)小型電子詞典

    C語言實現(xiàn)小型電子詞典

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)小型電子詞典,用戶可以進行英譯漢、漢譯英等功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • C++棧的數(shù)組實現(xiàn)代碼

    C++棧的數(shù)組實現(xiàn)代碼

    這篇文章主要介紹了C++棧的數(shù)組實現(xiàn)方式,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C++ 設(shè)置控制臺(命令行)窗口 光標位置,及前背景顏色

    C++ 設(shè)置控制臺(命令行)窗口 光標位置,及前背景顏色

    這篇文章主要介紹了C++ 設(shè)置控制臺(命令行)窗口 光標位置,及前背景顏色,需要的朋友可以參考下
    2019-04-04
  • Opencv實現(xiàn)用于圖像分割分水嶺算法

    Opencv實現(xiàn)用于圖像分割分水嶺算法

    這篇文章主要為大家詳細介紹了Opencv實現(xiàn)用于圖像分割分水嶺算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評論