0

画像の読み込みに使用するライブラリがあります。ライブラリは、ファイルからクラス オブジェクトを作成し、独自の描画機能を備えています。これらのオブジェクトを処理できるクラスを構築し、ファイルの読み込みが完了したら簡単なロジックを実装しようとしています。それらを私の処理クラスへの参照またはポインタとして渡す良い方法は何でしょうか?

これは私がこれまでに得たものです:

1)それらを参照として1つずつ渡します。ファイルを追加するときは、常に新しいファイルをクラス定義に書き込む必要があります。

2) すべてのオブジェクトを配列にロードし、それを参照として渡します。配列内にいくつのアイテムがあるかを知るために、クラス定義を設定する必要があります。しかし、プログラムのさまざまなステップでロードするファイルの量が異なる場合はどうすればよいでしょうか? 多くのコンストラクター/関数のオーバーロードを記述することは、正しい方法とは思えません。

週末を検索しましたが、これに対する解決策が実際には見つからなかったので、ポイントやヒントは大歓迎です。ああ、私はC ++にかなり慣れていないので、私の知識は限られていると考えてください。ポインターと参照が何であるかは理解できますが、それらを使用して実装するのは遅いです。

私の質問を繰り返します。私の処理クラスへの参照またはポインタとして可変量のオブジェクトを渡す良い方法は何でしょうか?

4

2 に答える 2

0

問題に関するソース コードの詳細は含めませんでしたが、解決策 2 は問題なくint、配列内の要素数を保持する変数を渡すだけで済みます。

于 2013-09-09T09:38:00.757 に答える
0

関数を次のようにすることができます。

void my_function(std::vector<SomeObject *> &objs) {
   // ...
}

その後、Iterator を使用して objs ベクトルを反復処理するか、単にチェックすることができます

objs.size()

http://en.cppreference.com/w/cpp/container/vectorを参照

于 2013-09-09T10:12:45.567 に答える