C/C++編程筆記:C++中的靜態(tài)數(shù)據(jù)成員,實例分析
2021-04-21 19:06 作者:C語言編程__Plus | 我要投稿

預測以下C ++程序的輸出:?
輸出:?
B's Constructor Called
上面的程序僅調用B的構造函數(shù),而不調用A的構造函數(shù)。原因很簡單,靜態(tài)成員僅在類聲明中聲明,而未定義。必須使用范圍解析運算符在類外部明確定義它們。?
如果我們嘗試訪問靜態(tài)成員“ a”而不對其進行顯式定義,則會收到編譯錯誤。例如,以下程序編譯失敗。
輸出:?
Compiler Error: undefined reference to `B::a'
如果我們添加a的定義,則該程序將正常運行并將調用A的構造函數(shù)。請參閱以下程序。
輸出:?
A's constructor called
B's constructor called
B's constructor called
B's constructor called
請注意,上面的程序對3個對象(b1,b2和b3)調用B的構造函數(shù)3次,但僅調用A的構造函數(shù)一次。原因是,靜態(tài)成員在所有對象之間共享。這就是為什么它們也被稱為類成員或類字段的原因。同樣,可以在沒有任何對象的情況下訪問靜態(tài)成員,請參見下面的程序,其中在沒有任何對象的情況下訪問靜態(tài)成員'a'。
輸出:A's constructor called
以上就是今天的全部內容了。每日分享小知識,希望對你有幫助~
另外如果你想更好的提升你的編程能力,學好C語言C++編程!彎道超車,快人一步!筆者這里或許可以幫到你~
微信公眾號:C語言編程學習基地
分享(源碼、項目實戰(zhàn)視頻、項目筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!

標簽: