1

私は C++ の初心者で、Java のバックグラウンドを持っています。次のことを確認したいと思います。

私はIra Pohl による分析によって C++ を読んでおり、その本には、ファイル/extern変数/関数の寿命はプログラムの期間であると記載されています (変数はクラスで宣言されていないため、これは理にかなっています)

知りたいこと; クラスで宣言された変数にも当てはまりますか? そうでない場合、変数がクラスで宣言されている場合、変数はautoストレージ クラスを使用しますか?

ありがとう。

4

1 に答える 1

3

クラスのメンバー変数には、宣言されていない限り、クラスのインスタンスの寿命に対応する寿命がありますstatic

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

これFoo、したがってそのxは、プログラムの寿命があります。

static Foo foo;

これはauto

int main() { Foo foo; }

これは動的に割り当てられ、次のようになるまで存続しFooますdelete

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

いずれの場合も、にyはプログラムの寿命があります。

于 2011-01-05T10:59:55.810 に答える