1

我是 C++ 新手,来自 Java 背景。我想确认以下几点:

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

我想知道的;类中声明的变量也是如此吗?如果不是,如果在类中声明了一个变量,这是否会使该变量使用auto存储类?

谢谢。

4

1 回答 1

3

除非声明,类中的成员变量具有对应于类实例的生命周期的生命周期static

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

This Foo,因此它的x,具有程序生命周期:

static Foo foo;

这个是auto

int main() { Foo foo; }

这个是动态分配的,并且一直存在到Foois delete'd:

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

在每种情况下,y都有程序的生命周期。

于 2011-01-05T10:59:55.810 回答