代码示例:
// 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成员变量必须初始化(一般是类外初始化)