C++靜態(tài)成員函數(shù)基本概念講解
我們在上一篇文章中為大家詳細(xì)介紹了C++靜態(tài)數(shù)據(jù)成員的一些定義方法以及相關(guān)應(yīng)用,相信大家應(yīng)該對這方面的內(nèi)容有所掌握。在這里,我們將會進(jìn)一步對C++靜態(tài)成員函數(shù)做一個(gè)詳細(xì)介紹,加深大家對其的認(rèn)識程度。
1.C++靜態(tài)成員函數(shù)的地址可用普通函數(shù)指針儲存,而普通成員函數(shù)地址需要用 類成員函數(shù)指針來儲存。舉例如下:
- class base{
- static int func1();
- int func2();
- };
- int (*pf1)()=&base::func1;//普通的函數(shù)指針
- int (base::*pf2)()=&base::func2;//成員函數(shù)指針
2.靜態(tài)成員函數(shù)不可以調(diào)用類的非靜態(tài)成員。因?yàn)镃++靜態(tài)成員函數(shù)不含this指針。
3.C++靜態(tài)成員函數(shù)不可以同時(shí)聲明為 virtual、const、volatile函數(shù)。舉例如下:
- class base{
- virtual static void func1();//錯(cuò)誤
- static void func2() const;//錯(cuò)誤
- static void func3() volatile;//錯(cuò)誤
- };
最后要說的一點(diǎn)是,靜態(tài)成員是可以獨(dú)立訪問的,也就是說,無須創(chuàng)建任何對象實(shí)例就可以訪問。
【編輯推薦】