2012-01-25 15 views
0

私はC++アプリケーションを持っています。私はファイルからいくつかの設定データを読み込む必要があります。アプリケーション設定の保存

構造は次のとおりです。

Root(singleton) → ConfigManager(); LogManager(); ...; 

だから、すべてのマネージャはRoo'tsのctorの中で作成され、私は方法使用して、それらへのポインタを取得することができます:Root::Get().GetSomeManager()を。

int main() 
{ 
    // Here all managers are initialized 
    Root::Get(); 
    // App cycle 
    Root::Get().Deinitialize(); 

    return 0; 
} 

ConfigManager私は、渡されたキーによってファイル値からロードすることができます。

質問: ファイルからの値をいくつかのグローバルな追加ファイルに保存するにはどうすればよいですか?

は、私がどのように見えるのコードでファイル Config.hppを書いた:

const int val = Root::Get().GetConfig()->GetValue("Key"); 

問題は、このファイルは、コンフィグマネージャが初期化され、またはされていない前に含めることができる可能性があるということですか?

私はこのコードが悪いことを知っていますが、私はそれをより良く書く方法はわかりません。

答えて

0

実行時に設定ファイルにアクセスする必要がないように、アプリケーションの起動時に設定の設定をメモリに保存したいと思ったからです。しかし、なぜあなたはすでにそれのようなシングルトンを持っているときにグローバル変数を使うことに決めましたか?

私はこれらの設定をConfigManagerのプライベート属性として保存し、それらをConfigManagerの初期化の一部として初期化します。 Root::Get().GetConfig()->GetValue("Key")のようなものが呼び出されると、すでにこれらのプライベート属性の1つの値が返されます。

関連する問題