12

他の 多くの質問は、変数をヘッダー ファイルで宣言し、.cpp ファイルで定義 (割り当て) することによって、変数を割り当てる方法を扱っています。

私がしたいのは、クラスに .cpp ファイルを使用せず、すべての関数をインラインとして (ヘッダー ファイルで) 定義することです。私が遭遇した問題は、静的メンバー変数を定義して、.h ファイルが複数のコンパイル ユニットに含まれている場合でも、「ここで最初に定義された」リンカー エラーが発生しないようにする方法です。

仕事が完了すれば、プリプロセッサのハックなどを受け入れます。.cpp ファイルを避けたいだけです。

問題がある場合は、GCC を使用しています。

4

3 に答える 3

0

静的変数を使用する場合は、.cpp ファイルに配置して、静的変数が複数になる可能性を回避する必要があります。また、大きなインライン メソッドを使用することはお勧めできません。これは、コンパイラへのヒントにすぎず、コンパイルに時間がかかるためです (開発中にこれらの関数の一部を変更すると、多くの依存ファイルをコンパイルする必要があります!)。

ただし、いくつかの静的情報を含む多数の .cpp ファイルが必要ない場合は、それらを格納するファイルを 1 つだけにしないでください。

于 2013-08-03T10:35:11.843 に答える
-1

そのヘッダー ファイルをプロジェクト全体に 1 回だけ含める限り、問題ありません。ただし、これは非常に強力な要件であり、他のユーザーに順守させるのは難しい場合があります。

変数を持つこともできますがstatic、それはプログラム全体で複数の変数を持つことを意味します。これは問題になる場合と問題にならない場合があります (将来変更できないことに注意してください。バグ」 - 変数が 1 つの変数ではないため、他のコードを変更すると、突然新しいバグが作成されました)。

于 2013-08-03T10:34:49.967 に答える