2011-01-05 56 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都具有程序使用寿命。