2016-05-23 4 views
2

私のプロジェクトが本当にすばらしいコード構造を持っていて、どこにいろいろなデータ型を使用している場合、単一のヘッダーに多くの型(主に静的な構造体など)静的なデータ型(構造体)の構成

たとえば、MyGameDataTypes.h。私は...

struct FCat 
{ 
     ... // much properties here 
}; 

struct FDog 
{ 
     ... // much properties here 
}; 

struct FElephant 
{ 
     ... // much properties here 
}; 

/// AND MUCH MORE 

それとも私は、各私の構造体に個別にすべてのヘッダーを作成する必要があります最良の方法のためなどFCAT、FDog、FElephantを、宣言はどこ?

Cat.hどこのstruct FCat

Dog.h構造体FDog

構造体 FElephant

など

Elephant.h ...

それともそこより良い方法があり、上記の、これはナンセンスですか?

答えて

1

同じ.hファイルに複数の構造を書き込むことができ、すべての動物構造に対して1つのファイルしか持てません。たとえば、animals.hファイルは、FCatFDogFElephantを含むことができます。最も重要なことは、コードに一貫性を持たせることです。あなたのすべての動物の構造を一箇所にまとめることは一貫しており、同じファイルに動物、車、建物の構造を持つことはできません。

おそらく既にそうですが、複数のインクルードlike thatからヘッダーファイルを保護する必要があります。

+0

ヘッダーは、すべてのファイルに複数のインクルードから保護され、 '#pragma once'ディレクティブで保護されます。 これは動物ですが、すべてのデータ構造に明示的なカテゴリがない場合は? このようにしなければならないことは何ですか?さらに、新しいデータ型はコード内に頻繁に現れます。 – Broly

+1

データ構造間にリンクが必要です。これが彼らが表現しているものでなければ、それがどのように使われているのかもしれません。あなたが 'struct A'と' struct B'を常に一緒に使用している場合などです。あるいは 'struct A'、' struct B'と 'struct C'が' struct D'の一部である場合、それらは同じファイルにある可能性があります – Olivier

+0

私はそうだと思います。ほとんどのデータ型を1つのヘッダに「ライブラリの型」として格納する理由はありますか?あるいは、すべてのデータ型をビジネスロジックに近づける方法を見つけることができますか?または、他の何か? 私はすべてがその場所を持っていると思うし、型は型ライブラリに置かなければならないが、恐らく間違っていて落とし穴がある。たとえば、完全なプロジェクトを再コンパイルします。しかし、おそらくそれも無視される可能性があります。 – Broly