優勢:(1)靜態資料成員沒有進入程式的全域性命名空間,因此不存在程式中其他全域性命名衝突的可能性。
(2)使用靜態資料成員可以隱藏資訊。因為靜態資料成員可以是private成員,而全域性物件不能
無論是在建構函式初始化列表中初始化成員,還是在建構函式體中對它們賦值,最終結果都是相同的。不同之處在於,使用建構函式初始化列表初始化資料成員,沒有定義初始化列表的建構函式體中對資料成員賦值。
對於const和reference型別成員變數,它們只能夠被初始化而不能被賦值操作,因此只能使用初始化列表。
還有一種情況就是,類的建構函式需要呼叫其基類的建構函式的時候。
#include using namespace std;
class a ;
a(int x):a(x){} //帶引數的建構函式對a的初始化
void printa()
void func1();
static void func2();
};
void test::func1()
void func1();
static void func2();
};
int test::i = 1;
void test::func1()
void test::func2()
int main()
c c 整理 c 物件導向(4)
下列對靜態資料成員的描述中,正確的是 a 靜態資料成員可以在類體中進行初始化 b 靜態資料成員不可以被類的物件呼叫 c 靜態資料成員不能收private控制符的作用 d 靜態資料成員可以直接用類名呼叫 解析 a錯誤。靜態資料成員必須在類外面初始化,以示與普通資料成員的區別 b錯誤cd正確 inclu...
C C 筆記 C 物件導向
1 虛函式 定義虛函式的類稱為多型類,編譯器會為多型類自動生成乙個虛函式表vtable。vtable是乙個函式指標陣列,用來描述每個類的虛函式位址。多太類同時還有乙個指向虛函式表的指標,為類的物件訪問虛函式。vtable中還應包含typeinfo的資訊,用來做rtti。派生類的vtable應該相容其...
物件導向整理
傳統的面向過程 將要完成的工作分作若干步驟,或在細分為子步驟,然後按步驟從前往後一步一步完成,然後達到目的,好比做飯,洗菜,切菜,下鍋等等每一步都是自己完成最終做成。現代的物件導向 將要完成的工作拆分為乙個乙個物件的任務,每個物件獨立完成自己的任務,任務之間的連線通過呼叫來實現,最終也完成了整體的工...