C++静态数据成员和静态成员函数
在C++面向?qū)ο缶幊踢^程當(dāng)中,對(duì)象與對(duì)象之間的數(shù)據(jù)不是共享,在設(shè)計(jì)類的時(shí)候,有時(shí)候需要一些對(duì)象之間共享的數(shù)據(jù),除了把所要共享的數(shù)據(jù)設(shè)置為全局?jǐn)?shù)據(jù)或者函數(shù)之外,還可以利用C++的靜態(tài)機(jī)制。
1、靜態(tài)數(shù)據(jù)成員
class 類名 { …… static 類型說明符 成員名; …… };?靜態(tài)數(shù)據(jù)成員是所有對(duì)象共享的,其所占的內(nèi)存空間不會(huì)因?yàn)槟硞€(gè)對(duì)象的產(chǎn)生而分配,也不會(huì)因?yàn)閷?duì)象的銷毀而消失。跟類中其他的非靜態(tài)數(shù)據(jù)成員一樣,被定義為private時(shí),不能被外界訪問。但是可以被類內(nèi)任意訪問權(quán)限的函數(shù)訪問。
關(guān)于靜態(tài)數(shù)據(jù)成員的初始化:非靜態(tài)成員可以在構(gòu)造函數(shù)當(dāng)中初始化,但是static不能在構(gòu)造函數(shù)當(dāng)中初始化,它的初始化,只能存在于全局區(qū)域,并且要指明是什么類的靜態(tài)成員,可以用作用域符號(hào)“::”來指明。
類名::靜態(tài)數(shù)據(jù)成員就這么簡單。
當(dāng)聲明為public時(shí)候,可以被直接訪問,修改而不通過靜態(tài)成員函數(shù)。
2、靜態(tài)成員函數(shù)
class 類名 { … static 類型 函數(shù)名(形參) { 函數(shù)體 } … };靜態(tài)成員函數(shù)當(dāng)中不能訪問任何權(quán)限的非靜態(tài)數(shù)據(jù)成員,換句話說它只能訪問static。在類外部調(diào)用靜態(tài)成員函數(shù)的時(shí)候,不是簡單的
對(duì)象.靜態(tài)成員函數(shù)這是普通成員函數(shù)的做法,
類名::靜態(tài)成員函數(shù)轉(zhuǎn)載于:https://www.cnblogs.com/daoluanxiaozi/archive/2011/12/03/2274636.html
總結(jié)
以上是生活随笔為你收集整理的C++静态数据成员和静态成员函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++面试题(1)
- 下一篇: C++的文艺复兴: Why C++? 王