(C++) for文内でのインスタンス生成について
はじめまして。
いつも色々と質問を読まさせて頂いています。
早速タイトルの質問についてですが、for文の中でループさせながらインスタンスを生成しようとしています。
for (int i=0; i<10; i++) {
MyObject *obj = new MyObject();
int intX = new int(100);
// メモリのアドレスを確認
printf("%p¥n", &obj);
printf("%p¥n", &intX);
}
この結果、
0xbfffd7dc
0xbfffd7f0
0xbfffd7dc
0xbfffd7f0
0xbfffd7dc
0xbfffd7f0
0xbfffd7dc
0xbfffd7f0
.
.
のようになり、どうも同じメモリアドレスを参照したインスタンスが生成されているようです。
やりたい事は、10回のインスタンスの生成をforで手抜きして行いたいのですが、この方法ですとすべて同じインスタンスとなってしまい、
別の処理でとある一つのインスタンスに変更を加えると、すべてのインスタンスにも変更がかかってしまいます。
これを実現する方法はあるのでしょうか。
解決方法として、forを使わずに、
MyObject *obj1 = new MyObject();
MyObject *obj2 = new MyObject();
.
.
とやれば別アドレスの参照となることは分かったのですが。。。
初歩的な質問だと思いますが、お知恵をお借りできればと思います。
よろしくお願いします。
お礼
すみません。 確かに噛み合っていなかったですね。うまく説明できず申し訳ないと思います。 回答者様のレベルと釣り合っていないようですので、ありがとうございました。