static和const修飾的類成員
類的static靜態(tài)數(shù)據(jù)成員: class A 初始化方法: int A::k=100; //靜態(tài)成員變量的初值只應(yīng)該設(shè)定一次,不要把初始化操作放在類的構(gòu)造函數(shù)中,因?yàn)闃?gòu)造函數(shù)可能一再被調(diào)用,也不要放在類的頭文件中,因?yàn)轭^文件可能被載入許多地方從而被執(zhí)行許多次。初始化時必須寫上數(shù)據(jù)類型(int)和類名限定(A::),就像類的函數(shù)成員實(shí)現(xiàn)時必須寫上函數(shù)返回值類型和類名限定一樣。
類的static靜態(tài)函數(shù)成員: class A 實(shí)現(xiàn)方法: void A::fun( ) //在類的源文件.cpp里進(jìn)行函數(shù)實(shí)現(xiàn),實(shí)現(xiàn)方法跟普通函數(shù)成員的實(shí)現(xiàn)一樣。類的靜態(tài)函數(shù)只能訪問該類的靜態(tài)數(shù)據(jù)成員或靜態(tài)函數(shù)成員。如果要訪問非靜態(tài)數(shù)據(jù)成員必須通過參數(shù)傳遞得到類對象名,然后通過對象名來訪問。如下: class A 函數(shù)實(shí)現(xiàn): void A::fun(A a )
類的const常數(shù)據(jù)成員: class A 初始化方法: A::A(int j):i(j) //常數(shù)據(jù)成員只能通過構(gòu)造函數(shù)初始化列表來獲取初值。常數(shù)據(jù)成員得到初值后不能更新。
類的const常函數(shù)成員: class A
函數(shù)實(shí)現(xiàn): A::A(int j,int m ):i(j),q(m) int A::k=456; void A::fun( ) const //常函數(shù)成員能訪問常數(shù)據(jù)成員,靜態(tài)數(shù)據(jù)成員和普通數(shù)據(jù)成員,但不能對常數(shù)據(jù)成員和普通數(shù)據(jù)成員更新。
類的const對象(常對象) const A(123,456); 類的常對象只能調(diào)用該類的常函數(shù)成員,由于常函數(shù)成員不能對常數(shù)據(jù)成員和普通數(shù)據(jù)成員更新,只能對靜態(tài)數(shù)據(jù)成員更新,所以常對象不能修改自己的數(shù)據(jù)成員,也因此才能叫常對象。(靜態(tài)成員不屬于一個對象而屬于整個類。)
類的靜態(tài)常數(shù)據(jù)成員 class A 函數(shù)實(shí)現(xiàn): A::A(int j,int m):i(j),q(m) const int A::k=789; //類的靜態(tài)常數(shù)據(jù)成員類似于靜態(tài)數(shù)據(jù)成員賦初值,但要記得前面加const。 void A::fun( ) const |
|