Переменная-член в классе имеет срок службы, соответствующий сроку службы экземпляров класса, если не объявлено 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
имеет срок действия программы.