一段程序的執行,都是在內存中爲程序非配內存塊,然後執行。靜態變量會在初始化時分配內存空間。關於類中靜態變量與非靜態變量的引用和其他問題,請看以下程序段:
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;
}