一段程序的执行,都是在内存中为程序非配内存块,然后执行。静态变量会在初始化时分配内存空间。关于类中静态变量与非静态变量的引用和其他问题,请看以下程序段:
class Point
{
public:
void output()
{
m=0;
n=0;
init(); // 非静态可引用静态
}
static void init()
{
// m=0;
// n=0; 静态不可引用非静态
x=0;
y=0; //静态可引用静态
}
protected:
private:
static int x,y;
int m,n;
};
int Point::x=0;
int Point::y=0; //静态变量需要在主函数外面初始化,如果再主函数被调用。
int main()
{
Point::init(); //init()属于类本身,可以这样调用。
// Point::output(); output()只能通过对象实例来调用。
return -1;
}