C++的Static函數(shù)
static?成員函數(shù)不能聲明為虛函數(shù)
static對象是共享的,類中的成員變量或成員函數(shù)一旦與static關(guān)鍵字相結(jié)合,則該成員變量或成員函數(shù)就是屬于類的,而不是再是屬于任何一個(gè)對象的,當(dāng)然任何一個(gè)對象都可以共享該成員變量及成員函數(shù)。
static的對象沒有this指針
class c1{
public:
int geta();
void seta(int x);
private:
int a;
static int b;
//定義之后一定要在在類的外部初始化
};
int c1::b = 0;
int c1::geta(){
return a;
}
void c1::seta(int x){
static int c;
a = x;
b=b+1;
c++;
printf("b=%d c=%dn", b, c);
}
void main()
{
c1 cc1, cc2;
cc1.seta(1);
cc2.seta(2);
cc2.seta(2);
cc2.seta(2);
cc1.seta(1);
}
輸出結(jié)果:
b=1 c=1
b=2 c=2
b=3 c=3
b=4 c=4
b=5 c=5
可見,不管在哪兒定義的static都是共享的。