static 数据成员必须在类定义的外部定义。不象普通数据成员,static成员不是通过类构造函数进行初始化,而是应该在定义时进行初始化。静态数据成员的用途之一是统计有多少个对象实际存在。静态数据成员不能在类中初始化,实际上类定义只是在描述对象的蓝图,在其中指定初值是不允许的。也不能在构造函数中初始化该成员,因为静态数据成员为类的各个对象共享,那么每次创建一个类的对象则静态数据成员都要被重新初始化#include <stdio.h> class A { public: // A() {i=3;} // 不注释掉会出现链接错误 void foo() { printf("%d\n",i); } private: static int i; //如果换成static int i=10;出错 }; int A::i=10; //static变量在类外定义 void main() { A a; a.foo(); }
static 数据成员必须在类定义的外部定义
最新推荐文章于 2022-08-22 23:48:07 发布