C++のクラス内にクラスオブジェクトの動的配列を作成する際に問題があります。概念は次のとおりです:私たちはクラスAを持っていると仮定します。このクラスでは、メモリが動的に割り当てられる同じタイプのクラス(例えばA *配列)を持つオブジェクトの配列が必要です。この配列の最初のサイズ)。 main()
で2つのオブジェクトの配列を作成したいと思います。最初のクラスは、クラスAの3つの要素と、6つの要素を持つ2つ目のオブジェクトを持つ配列を持ちます。したがって、すべてのオブジェクトは独自の配列を持ちます。ここに私の考えは以下のとおりです。C++のクラス内にクラスオブジェクトの動的配列を作成
基本的な考え方:
|_|_|_| //Array with 3 elements of class A in object A
| _____ |_|_|_|_|_|_| //Array with 6 elements of class A in object B
| |
|A||B| //Basic array with 2 elements
class A {
A* array;
public:
A(int k) {
//array = new A[k]; //this doesn't work because it calls the default constructor.
int i;
for (i = 0; i < k; i++)
array = new A(k); //This doesn't work either.
cout << "A created." << endl;
};
~A() {
cout << "Destroying A!" << endl;
}
};
int main() {
A *ar[2];
for (i = 0; i < 2; i++) {
if(i == 0) {
ar[i] = new A(3);
} else {
ar[i] = new A(6);
}
}
return 0;
}
事前にありがとうございます。
'std :: vector' periodを使用してください! –
回答ありがとうございます。ベクトルは最高の実装ですが、これは私がそれらを使用することを許可されていないプロジェクトです。 – Vkt678
'std :: vector'は無限の再帰問題を解決しません。どこでネスティングをやめますか? –