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

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

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

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

// 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 中聲明,但它必須在類聲明的外部定義。
在不引用類類型的對(duì)象的情況下,可以引用靜態(tài)數(shù)據(jù)成員??梢垣@取使用 BufferedOutput 對(duì)象編寫的字節(jié)數(shù),如下所示:

long nBytes = BufferedOutput::bytecount;

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

BufferedOutput Console;

long nBytes = Console.bytecount;

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


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

mutable member-variable-declaration;

備注
例如,以下代碼在編譯時(shí)不會(huì)出錯(cuò),因?yàn)?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)文章

最新評(píng)論

徐水县| 滕州市| 竹溪县| 麻阳| 桂林市| 梁河县| 句容市| 隆昌县| 宜宾县| 札达县| 游戏| 砚山县| 汉寿县| 松滋市| 普陀区| 大石桥市| 美姑县| 宝兴县| 乐清市| 漳平市| 伊金霍洛旗| 龙海市| 吉水县| 广州市| 宜春市| 大渡口区| 高密市| 遵化市| 沅陵县| 玛纳斯县| 麦盖提县| 扶沟县| 四川省| 乃东县| 河西区| 顺昌县| 海盐县| 雷州市| 儋州市| 波密县| 澄迈县|