static 靜態成員是屬于整個類的,不是某個對象。在所有對象中可以共享它。1. 可以通過類名直接調用靜態成員,非靜態成員則不行。如:
class Student { public: static void init() { } }; void main() { Student::init(); } 2. 靜態成員在類實例化對象之前就已經分配空間,因此不能調用非靜態成員,因為非靜態成員是在實例化對象之后才分配空間。這種調用就像未聲明對象卻使用了它一樣。3. 靜態成員在使用前要初始化。靜態成員的初始化要在類外。 能在類中初始化的成員只有一種,靜態常量成員。static和const都不能在類內初始化,static const可以在類內初始化。4. 靜態成員只初始化一次:
#include<iostream.h>void f() { static int i=15; i++; cout<<"i="<<i<<endl;}void main(){ for(int k=0;k<2;k++) f();}結果為16 17,第二次初始化會自動跳過。
新聞熱點
疑難解答
圖片精選