抽象的なインタフェースの静的配列を初期化したいと思います。私はちょうどデータを構築する静的関数への呼び出しが有効な初期化手段であるかどうか疑問に思っています。下のコードでポインターが指しているデータの寿命はどのように見えますか?静的関数の非静的データの長さ
typedef class FOO {
public:
static const int** array_int;
static const int** array_int_init();
} FOO;
const int** FOO::array_int_init()
{
const int A = 5;
const int B = 6;
const int C = 7;
const int* array_int[] = { &A, &B, &C };
return &array_int[0];
}
const int** FOO::array_int = array_int_init();
また、C++仕様でこのような動作の詳細を見つける最も良い方法は何ですか?私はN3225 = 10-0215を持っていますが、インデックスとコンテンツを見ても、私は答えを約束することなくたくさん読む必要があります。
'typedefクラスFoo {...} FOO;'はC++では本当に必要ではありません。単純な 'class Foo {};'は絶対に十分です。 –
@ Polybos:実際、C++ではこれは決して必要ではありませんでした。 – sbi
@sbi明快さの欠如のため申し訳ありません:)私は言いたいと思いました:Cではそれは必要でしたが、C++ではそれはもはやありません。 –