私の初心者の質問を許してください..
私は持っている :
class A;
{
public:
A(int i) : m_i(i) {}
int m_i;
}
A newA(i);
{
return A(i);
}
そして、次のベクトルを埋めたいのですが、オブジェクト A が関数 (newA) で作成されるループを使用します。
vector<A*> list;
for (int i=0 ; i<3; ++i) { A a = newA(i); list.push_back(&a); }
&a の値を変更し、同じポインター &a を 3 回押すだけなので、aを使用しても a では機能vector<A>
しません。vector<A*>
毎回新しい A を作成し、同じポインターの値を変更しないようにするにはどうすればよいですか。
私は次のことを思いつきましたが、動的割り当てが含まれているため、それが唯一の方法ではないことを願っています..
A newA(i);
{
return A(i);
}
vector<A*> list;
for (int i=0 ; i<3; ++i)
{
A a = newA(i);
list.push_back(new A(a));
}
クラス A は実際にはメモリ内で巨大であるため、ポインターが存在することに注意してください。