C++およびOOPの新機能です。リストと繰り返しを理解しようとしているので、次のサンプルコードを作成しました。私はいくつかのThingオブジェクトを作成しますが、Thingが作成されると、コンストラクタはそのオブジェクトをListオブジェクトのリストに追加して、Thingのすべてのインスタンスを追跡できるようにしたいと考えています。 main()の最後で、私は物のリストを繰り返します。これを行うには良い方法がありますか、またはThingコンストラクタでこれを行う方法を指摘できますか?ありがとう!!クラスのすべてのインスタンスをリストオブジェクトに追加するコンストラクタ
#include <iostream>
#include <list>
class Thing;
class Lists
{
public:
std::list<Thing> things;
Lists() {
std::cout << "List object with list 'things' created" << std::endl;
}
};
class Thing
{
public:
int howMuch, pointer;
Thing(int x, Lists* y)
{
howMuch = x;
y->things.push_back(this);
}
};
int main()
{
//create the object that holds the list of things
Lists lists;
//make some objects, and pass a pointer of the lists to the constructor
Thing thingA(123, &lists);
Thing thingB(456, &lists);
for (std::list<Thing>::iterator it = lists.things.begin(); it != lists.things.end(); ++it)
std::cout << "test" << it->howMuch << std::endl;
return 0;
}
使用 '静的のstd ::リスト事を;'、あなたがオブジェクトポインタを渡す必要がありません。 。 –
はあなたのリストに 'void addThing(int howMuch);'関数を持つことができました – tinkertime
'std :: list things;'の代わりに 'std :: list もの;追加された '*'に注意してください。 –