3

という基本クラスがありEventArgsます。これから派生したのは、特定の種類のイベントのイベント引数を表す多くの特殊化です。これらのイベントの利用者は、これらの引数クラスのいくつか、多く、またはごく少数を必要とする場合があります。

私の質問は、タイプごとにヘッダーファイルを提供しますか(たとえば、さまざまなタイプのヘッダーファイルを50以上)、それらをファミリーにグループ化して、それらの「共通」ヘッダーファイルを作成しようとしますか、それともスローしますか?ウィンドウに注意して、インクルードできる使いやすいヘッダーファイルにそれらをスローしますか?

別のアプローチは、50個のヘッダーファイルを用意することです。次に、特定のヘッダーファイルを含むいくつかの「ファミリー」ヘッダーファイルを導入することができます。これらの種類のものの命名規則についてはよくわからないので、どこにあるのかは明らかです。

厳格なルールはないかもしれませんが、他の開発者が多くの小さなクラスを書いていることに気付いたときに、他の開発者が何をしたのか疑問に思っています。

前もって感謝します。

4

5 に答える 5

3

次のいずれかの場合、2つのクラスを別々のヘッダーに配置する必要があります。

  • 彼らは巨大です
  • それらは無関係であるか、一緒に使用される可能性は低いです
  • それらのそれぞれが独自のヘッダー依存関係を導入します

そうでなければ、それらを分離することはあまり意味がありません。この「ヘッダーごとに1つのクラス」ルールを使用している人がいることは知っていますが、あなたの場合は合理的ではないようです。

たくさんの小さなファイルを含む「ファミリ」の場合、特定のビルドシステム(およびファイルシステム)では、これはコンパイル時間に影響を与える可能性があります。いずれにせよ、これを行う意味はありません。通常、人々はドキュメントまたはIDEを使用します。ヘッダーファイル名ではなく、クラスを検索します。したがって、これは包含を単純化するためにのみ行いますが、同じヘッダーにそれらを配置しないのはなぜですか。

于 2011-01-05T00:49:05.040 に答える
1

ユーザーが一緒に使用したいと思うクラスに従って、それらをファミリーにグループ化します。いずれにせよ、50以上の小さなヘッダーファイルは過剰に思えます。

于 2011-01-04T23:56:37.953 に答える
0

すべてのバリアントをテンプレートにすることはできませんか?

于 2011-01-05T00:41:52.167 に答える
0

私はGUIライブラリを開発していたのと同じような状況にありました。当初、すべてのコンポーネント(それらは小さなクラスでした)は同じヘッダーとソースファイルを共有していました。これはかなりうまくいきました。後でそれらを別々のファイルに入れようとしましたが、実際には何も改善されませんでした。これらのファイルを検索するのに多くの時間を費やすという負担が追加されただけです。

それはさておき、PocoC++ライブラリからインスピレーションを引き出すことができるかもしれません。このライブラリは通常、ヘッダーイディオムごとに1つのクラスに従いますが、例外があります。たとえば、例外階層全体は、マクロベースのシステムを使用して1つのヘッダーとソースファイルにコード化されます(Exception.hおよびException.cppを参照)。

于 2011-01-05T01:13:19.307 に答える
0

それらが同じ継承階層に属している場合は、同じ.hファイルに配置します。クラスの正しい順序を決定するのに役立ちます。C ++でのあまり知られていないコンパイル時チェックの1つは、.hファイル内のクラスの正しい順序に依存しています。

于 2011-01-05T17:57:00.333 に答える