C++静态成员函数
一句話總結:只有非靜態成員函數才可以成為虛函數,而靜態成員函數不能聲明為虛函數。
class test { public :virtual test(){a = new int[5];} //errorstatic void g(); //okvirtual void f(); //okvirtual static void h(); //compile errorvirtual ~test(){delete[] a;} //ok private:int * a; };在本例中定義了一個test類,這個類中有一個指針成員變量a,test類中有五個成員函數,在本例中將析構函數和普通成員函數f聲明為虛函數是沒有問題的,將構造函數和靜態成員函數聲明為虛函數則會出現編譯錯誤,這兩種做法都是有違C++語法規定的。
總結
- 上一篇: C++虚成员函数表vtable
- 下一篇: C++重载、覆盖和遮蔽