static变量必须在类外面初始化
static函数内部只可以调用static成员(可以从内存模型理解,static成员不需要构造对象就可以存在,而非static成员需要构造对象才行,两者存在的先后顺不一样,故无法调用非static成员)
static函数可直接被类调用
class point
{
public:
void add() { init() }
static void init() { x = 0; y = 0} //static函数内部只可以调用static成员
private:
static int x, y;
};
int Point::x = 0; //static变量必须在类外面初始化
int Point::y = 0;
void main()
{
Point::init(); //static函数可直接被类调用
}