C ++ extern存储类寿命

时间:2011-01-05 10:57:19

标签: c++ extern storage-class-specifier

我是一名C ++新手,来自Java背景。 我想确认以下内容:

我正在通过Ira Pohl 的解剖阅读 C ++,而这本书指出了 文件/ extern变量/函数的生命周期是程序的持续时间(这是有意义的,因为变量未在类中声明)

我想知道的;对于在类中声明的变量,情况也是如此吗?如果没有,如果在类中声明变量,那么变量是否使用auto存储类?

感谢。

1 个答案:

答案 0 :(得分: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都有程序生命周期。