程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 12.6 static類成員

12.6 static類成員

編輯:關於C語言

        在程序的任意點需要統計已創建的特定類類型對象的數量,或者類的錯誤處理歷程的一個指針即類的所有對象出錯後的處理方法),或者類中的對象需要訪問一個共同的變量時如銀行中的賬戶類,每個賬戶都有用戶名,余額,利率等信息,而利率對所用用戶是相同的)。在上述情況下,可以定義一個全局變量,然而全局對象會破壞封裝,不僅相關的這個類可以訪問此全局對象,用戶代碼也可以訪問。因此類可以定義類靜態成員,而不是定義一個可普遍訪問的全局對象。

    static類成員:聲明前帶有關鍵字static的類成員。static類成員不是任意對象的組成部分,但由該類的全體對象共享。static類成員包含static數據成員和static函數成員。

static成員函數沒有this形參,它可以直接訪問所屬類的static成員包括static數據成員和其它static成員函數)。

使用static成員的優點:

1)static成員的名字在類的作用域中,可以避免與其它類的成員和全局對象的名字沖突。

2)可以實現封裝,static成員可以是私有成員,而全局對象不可以。

3)通過閱讀程序可以容易看出static成員是與某個特定類關聯的,這種可見性可清晰的顯示程序員的意圖。

與普通成員的不同:普通成員總是與對象關聯,是某個對象的組成部分;而static成員於類關聯,由該類的全體對象所共享,不是任意對象的組成部分。

使用類的static成員

        可通過作用域操作符從類中直接調用static成員,或者通過對象、引用或指向該類類型對象的指針間接調用。如:ac1.rate()   //rate()需為public  

                        ac2->rate()  //rate()需為public

                        Account::rate()   

 

    

本文出自 “李海川” 博客,請務必保留此出處http://lihaichuan.blog.51cto.com/498079/1289767

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved