0

現在、3 つのファイルを含むプロジェクトがあります。

以下を含む1 つのDBheader.hヘッダー ファイル:

  • クラス宣言 (より小さなメンバー関数定義を含む)

次のDBdefinitions.cppファイル:

  • クラスのより大きなメンバー関数の定義DBheader.h

最後に、DBmain.cpp以下を含むファイル:

  • メインコード
  • で定義されたクラスを使用するいくつかの大きな (非メンバー) 関数DBheader.h

DBmain.cppこれらの関数をどこかに移動して、ファイルが乱雑にならないようにしたいと考えています。それらをファイルに移動する必要がありますか、または非メンバー関数用にDBdefinition.cpp新しい別のファイルを作成する必要がありますか?.cpp

上記が不明な場合の私のコードの概観を次に示します。

//DBheader.h

//libraries..

class course{
//member data..

void printinfo();

}

-

//DBdefinitions.cpp

#include "DBheader.h"
void course::printinfo(){/*do stuff*/}

-

//DBmain.cpp

#include "DBheader.h"
typedef map<int,course> record;
void fileinput(record &map);
int main(){
//stuff
}
void fileinput(record &map){
//lots of code
}
4

1 に答える 1

1

パブリック インターフェイスの一部であるフリー関数は、定義に使用したのと同様の方法で編成する必要がありますclass。つまり、宣言を含むヘッダーと実装を含む実装ファイルです。

それらが特定の翻訳単位に固有のものである場合は、その実装ファイルに保持してください。

すべてのフリー関数は a 内で宣言する必要がありますnamespace(パブリック関数には名前が付けられ、「プライベート」フリー関数には匿名です)。

于 2012-04-25T18:49:59.077 に答える