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