[英]How do I organize input global variables?
在業余時間里,我正在研究一些物理仿真代碼,因此我a)有一個將來可以建立的框架,b)使自己對C ++保持新鮮。 我幾乎有程序的每個部分都需要幾個值(光速,盒子大小,粒子數量,類似的東西),但是我真的很想讓用戶能夠在輸入中指定這些值。 cfg文件(因此#DEFINE
+ constants.h
文件將無法工作)。 我當然可以很好地閱讀這些值,但是使它們在許多不同模塊中可用的常規/最佳方法是什么?
單身呢:
class Universe {
private:
Universe();
public:
static Universe& GetInstance();
void Reload();
double GetSpeedOfLight() const { return m_C; }
...
private:
double m_C; //!< Speed of light
};
Universe& Universe::GetInstance() {
static Universe instance;
return instance;
}
Universe::Universe() {
Reload();
}
void Universe::Reload() {
// load your constants
}
為什么不構造一個struct
或class
來包含這些變量或class
,並擁有一個檢索或更新配置當前狀態的函數,而不是一堆其他不相關的全局變量?
例如,作為一種struct
您可以實現序列化方法以讀取或寫入.cfg
類型的文件。
這也可以實現靜態方法以返回活動配置,因此可以使用全局方法在實現中引用局部變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.