代码示例:
// static_guide.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" class Point { public: static void init() { a=0;//非静态成员引用 b=0;//非静态成员引用 c = 0; } void output() { init(); c = 200; } private: int a; int b; static int c; }; int Point::c = 100; //静态成员变量必须初始化 //by zhaocl int _tmain( int argc, _TCHAR* argv[] ) { //方法1 Point pt; pt.init(); pt.output(); //方法2 Point::init(); Point::output();//非静态成员引用 return 0; }
总结:
1、static成员(方法、变量)在类创建的时候已经分配好了内存地址,属于整个类,而不是某个对象,所以static类型的使用方法1和方法2都可以,但是不是static类型的,不创建对象不能使用
2、同理,static方法里边只能调用static成员变量(此方法有调用的情况),普通方法可以调用static和普通成员变量
3、static成员变量必须初始化(一般是类外初始化)