天天看點

C++ static 靜态成員變量 和 靜态成員函數

  • 靜态(static) 成員 變量 
1•  靜态成員變量的初始化需要在類外完成;
2•  靜态成員不屬于具體的某個對象,而屬于整個類;
3•  所有對象共享本類中的靜态成員;
4•  靜态成員最好直接通過類名::成員來通路和調用。
  • 靜态成員函數
靜态成員函數中沒有this指針
出現在類體外的函數定義不能指定關鍵字static;
靜态成員之間可以互相通路,包括靜态成員函數通路靜态資料成員和通路靜态成員函數;
非靜态成員函數可以任意地通路靜态成員函數和靜态資料成員;
靜态成員函數不能通路非靜态成員函數和非靜态資料成員;
由于沒有this指針的額外開銷,是以靜态成員函數與類的非靜态成員函數相比速度上會有少許的增長;

調用靜态成員函數,可以用成員通路操作符(.)和(->;)為一個類的對象或指向類對象的指針調用靜态成員函數。

私有靜态成員變量可以通過公有靜态成員函數通路。

繼續閱讀