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,第二次初始化会自动跳过。
新闻热点
疑难解答
图片精选