いくつかの静的オブジェクト(たとえば、a1、a2、a3)へのポインタを保持するベクトルを作成する必要があります。function-staticオブジェクトをプログラムで作成することはできますか?
void foo()
{
static TEST a1, a2, a3;
static vector<TEST *> m_test;
m_test.push_back(&a1);
m_test.push_back(&a2);
m_test.push_back(&a3);
}
しかし、static
オブジェクトごとに宣言を書き出す必要はありません。
これを行うにはどうすればよいですか?私のような何かを試してみました:
for (unsigned int i=0; i<10; i++)
{
m_test.push_back(&(static TEST()));
}
をしかし、それは、オブジェクトが破壊され得るように私は通常、一時的に期待するようstatic
は、式の中の任意の効果を持っていないようです。
このマニフェスト自体をする方法は?予期しない動作を引き起こすコードを表示します。 –
コンパイルしても驚いています –