我是一名C ++新手,来自Java背景。 我想确认以下内容:
我正在通过Ira Pohl 的解剖阅读 C ++,而这本书指出了
文件/ extern
变量/函数的生命周期是程序的持续时间(这是有意义的,因为变量未在类中声明)。
我想知道的;对于在类中声明的变量,情况也是如此吗?如果没有,如果在类中声明变量,那么变量是否使用auto
存储类?
感谢。
答案 0 :(得分:3)
除非声明static
,否则类中的成员变量的生命周期对应于类实例的生命周期。
struct Foo {
int x;
static int y;
};
此Foo
及其x
具有程序生命周期:
static Foo foo;
这是auto
:
int main() { Foo foo; }
这是动态分配的,直到Foo
为delete
'd:
int main() { Foo *foo = new Foo; }
在每种情况下,y
都有程序生命周期。