だから、私がこれをやろうとしている理由の簡単な要約:
私は宇宙飛行プログラムを作成しています。(複数の船でコーディングすると) さまざまな船、たとえばクラフト [HAB]、クラフト [AYSE]、クラフト [ISS] などを格納できます。現時点では、1 隻の船でしかコーディングしていませんが、次のように宣言しています。
enum craft {HAB, CRAFTMAX};
...
[declaring ship class here]
...
ship craft[CRAFTMAX];
ただし、すべての船が同じ構造になるわけではありません。たとえば、HAB (Habitat の略) は円で、下部に 3 つのエンジン ポッドがあり、AYSE は中央にチューブがあり、ドッキング ライトなどがある宇宙ステーションになります。これらの関数がベクトルを画面に描画するようにしています。
現時点では、ship::draw を宣言しており、これを使用して Hab を描画しています。ただし、各描画関数を変更してその船を描画できるようにしたいと考えています。つまり、craft[AYSE].draw() は、craft[HAB].draw() とは異なる宣言を行います。
これを行うためのさまざまな方法を考え、調べましたが、あまり成功していません。重力と衝突の計算を容易にするために、すべてのクラフトを繰り返し処理できるようにしたいと考えています。しかし、関数が配列の要素であるときに関数を個別に宣言することが不可能である場合、各船を個別に宣言するのはそれほど面倒ではないと推測しています。
他のコードを見たい場合は、これを保存している私の git リポジトリを次に示します。これは独占プロジェクトであるため、少し組織化されていないことは間違いありません。
これをやろうとした人はいますか?きっとそこには何人かいるに違いない!
そして、前もって感謝します。