ある構造体の配列とその配列へのポインタを含むクラスがあるとしましょう。
struct Box {
//stuff
};
class Foo {
private:
Box *boxPtr //pointer to an array of Box structs
int max; //the size of the partially filled array
int boxCounter; //the current number of non-NULL elements in the array
public:
Foo(); //constructor
Foo(const Foo &obj); //copy constructor
~Foo(); //destructor
bool newBoxInsert(Box newBox){
//adds another Box to my array of Box structs
boxCounter++;
}
//etc
};
そして、私のint main()で、どういうわけか、クラスFooのまったく新しいオブジェクトを作成する必要があります。ポインタがboxPtrである、サイズが不確定な配列を部分的に埋める必要があります。
その配列を初期化するにはどうすればよいですか?コンストラクターはそれを行う必要がありますか?または、newBoxInsertに処理させる必要がありますか?
どちらの場合でも、どうすればそれを達成できますか?配列を動的に割り当てる必要があると思います。その場合は、ポインタをクラスメンバーとして持つのが良いでしょう...そうですか?
たとえば、最初の要素を配列に追加する場合、次を使用する必要があります
boxCounter = 1;
boxPtr = new Box[boxCounter];
次に、配列に要素を追加し続けますか?
おそらく、これはベクトルを使用した方がよいでしょう。要素を追加するとき、それらははるかに...柔軟性があります(?)。ベクトルに構造体を要素として含めることはできますか?
[/ n00b]