2016-05-23 77 views
2

當我的項目真的具有很好的代碼結構時,使用幾乎所有不同的數據類型時,是否有必要在單個頭文件中存儲多種類型的數據(通常是靜態數據結構)?靜態數據類型的組織(結構)

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,其中結構FCat

Dog.h其中結構FDog

Elephant.h其中結構FElephant

等等

或者有更好的方法,這上面是無稽之談?

回答

1

您可以在同一個.h文件中編寫多個結構,並且只有一個文件適用於您的所有動物結構。例如,animals.h文件可能包含FCatFDogFElephant。最重要的是要在代碼中保持一致。讓所有的動物在一個地方結構一致,在同一個文件中有動物,汽車和建築結構可能不是。

也許它已經是這樣了,但是您應該保護頭文件不受多重包含like that的影響。

+0

使用'#pragma once'指令可以避免在每個文件中包含多個頭文件。 好的,這是動物,但是如果所有數據結構都沒有明確的類別? 我必須這樣做嗎?此外,新代碼中經常出現新的數據類型。 – Broly

+1

應該有你的數據結構之間的鏈接。如果這不是他們所代表的,那可能是他們如何被使用。例如,如果總是一起使用'struct A'和'struct B'。或者,如果struct A,struct B和struct C是struct D的一部分,它們可能在同一個文件中 – Olivier

+0

我認爲這是正確的,但這是關於全局代碼組織的問題。是否有任何理由將幾乎數據類型存儲在一個頭中作爲「類型庫」?或者找到一種方法將所有數據類型更接近業務邏輯?或者是其他東西? 我認爲一切都有它的位置,類型必須放置在類型庫中,但也許它是錯誤的並且有缺陷。例如,完整的項目重新編譯。但也可能也可以忽略它。 – Broly