簡體   English   中英

如何組織輸入全局變量?

[英]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
}

為什么不構造一個structclass來包含這些變量或class ,並擁有一個檢索或更新配置當前狀態的函數,而不是一堆其他不相關的全局變量?

例如,作為一種struct您可以實現序列化方法以讀取或寫入.cfg類型的文件。

這也可以實現靜態方法以返回活動配置,因此可以使用全局方法在實現中引用局部變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM