2011-01-05 24 views
1

我是C++新手,來自Java背景。 我想確認以下內容:C++外部存儲類生命期

我讀C++通過解剖由伊拉·波爾和書指出 壽命爲文件/ extern變量/函數是程序的持續時間(這是有道理的,因爲變量沒有在類中聲明)

我想知道的是什麼;這也是一個變量在類中聲明的情況嗎?如果不是,如果變量在類中聲明,那麼這會使變量使用存儲類?

感謝。

回答

3

除非聲明爲static,否則類中的成員變量的壽命對應於類實例的生命週期。

struct Foo { 
    int x; 
    static int y; 
}; 

Foo,因此,其x,有計劃壽命:

static Foo foo; 

這一個是auto

int main() { Foo foo; } 

這一個是動態分配和生活,直到Foodelete'd:

int main() { Foo *foo = new Foo; } 

在每種情況下,y都具有程序使用壽命。