C++ 静态数据类型(结构)的组织

C++ 静态数据类型(结构)的组织,c++,struct,types,header,code-organization,C++,Struct,Types,Header,Code Organization,当我的项目真的有很好的代码结构,几乎到处都使用不同的数据类型时,在单个头中存储多种类型的数据(主要是静态的,例如结构)是否有意义 例如MyGameDataTypes.h。在那里我宣布了FCat、FDog、FElephant等 struct FCat { ... // much properties here }; struct FDog { ... // much properties here }; struct FElephant {

当我的项目真的有很好的代码结构,几乎到处都使用不同的数据类型时,在单个头中存储多种类型的数据(主要是静态的,例如结构)是否有意义

例如MyGameDataTypes.h。在那里我宣布了FCat、FDog、FElephant等

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

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

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

 /// AND MUCH MORE
或者,为了达到最佳效果,我必须为我的每个结构单独创建每个头

Cat.h
where struct
FCat

Dog.h
where struct
FDog

Elephant.h
where struct
FElephant

等等


或者有更好的方法,而以上这些都是胡说八道?

您可以在同一个.h文件中编写多个结构,并且所有动物结构只有一个文件。例如,
anists.h
文件可以包含
FCat
FDog
FElephant
。最重要的是代码的连贯性。将所有动物的结构放在一个地方是一致的,而将动物、汽车和建筑结构放在同一个文件中则可能不一致


可能已经是这样了,但是您应该保护头文件不被多次包含。

使用
#pragma once
指令,头文件在每个文件中都不被多次包含。好的,这是动物,但如果所有的数据结构都没有明确的类别?我必须用这种方式做什么?此外,新的数据类型经常出现在代码中。数据结构之间应该有一个链接。如果这不是它们所代表的,那可能是它们的使用方式。例如,如果您总是同时使用结构A和结构B。或者如果
struct A
struct B
struct C
struct D
的一部分,它们可能在同一个文件中,我认为这是正确的,但这是关于全局代码组织的问题。是否有任何理由将几乎所有数据类型存储在一个标题中作为“类型库”?或者找到一种更接近业务逻辑的填充所有数据类型的方法?还是别的什么?我认为每件事都有它的位置,类型必须放在类型库中,但也许它是错误的,并且有陷阱。例如,完整的项目重新编译。我想每个开发人员都有自己的偏好,但我有权根据程序的逻辑对数据结构进行分组,就像我之前说过的那样。这样,您(以及查看代码的其他开发人员)就可以轻松理解程序的结构并快速访问所需的文件。我认为重要的是要有逻辑头文件,以避免在源文件中包含不使用的数据结构。