c++類的靜態成員特性


1、我們可以使用 static 關鍵字來把類成員定義為靜態的。當我們聲明類的成員為靜態時,這意味着無論創建多少個類的對象,靜態成員都只有一個副本。

2、靜態成員在類的所有對象中是共享的。如果不存在其他的初始化語句,在創建第一個對象時,所有的靜態數據都會被初始化為零。我們不能把靜態成員的初始化放置在類的定義中,但是可以在類的外部通過使用范圍解析運算符 :: 來重新聲明靜態變量從而對它進行初始化。

3、如果把函數成員聲明為靜態的,就可以把函數與類的任何特定對象獨立開來。靜態成員函數即使在類對象不存在的情況下也能被調用,靜態函數只要使用類名加范圍解析運算符 :: 就可以訪問。

4、靜態成員函數只能訪問靜態成員數據、其他靜態成員函數和類外部的其他函數。

5、靜態成員函數有一個類范圍,他們不能訪問類的 this 指針。您可以使用靜態成員函數來判斷類的某些對象是否已被創建。

6、靜態成員函數與普通成員函數的區別:

  • 靜態成員函數沒有 this 指針,只能訪問靜態成員(包括靜態成員變量和靜態成員函數)。
  • 普通成員函數有 this 指針,可以訪問類中的任意成員;而靜態成員函數沒有 this 指針。

ps:

類中特殊成員變量的初始化問題:

  • 常量變量:必須通過構造函數參數列表進行初始化。
  • 引用變量:必須通過構造函數參數列表進行初始化。
  • 普通靜態變量:要在類外通過"::"初始化。
  • 靜態整型常量:可以直接在定義的時候初始化。
  • 靜態非整型常量:不能直接在定義的時候初始化。要在類外通過"::"初始化

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM