0

アプリケーションのグローバル設定プロバイダーを作成しようとしています。1 つのオブジェクトを非常に多くの異なるクラスで複製するのは、かさばるように思えました。

このメソッドは、private static 変数が整数などの単純なものの場合に機能することがわかりましたが、オブジェクトである QSettings に対しても機能するようにしたいと考えています。

// settings.h
class Settings {
public:
    static void Initialize();
    static int serverRefreshRate();

private:
    QSettings *settings;
};

// settings.cpp
#include "Server/settings.h"

void Settings::Initialize() {
    Settings::settings = new QSettings(/* etc */);
}

int Settings::serverRefreshRate() {
    return settings->value("server/refreshRate", 10000).toInt();
}

これを達成する方法はありますか、それとも間違った方法で行っていますか?

ありがとう!

編集、

まず、次のようにする必要がありました。

static QSettings *settings;

そして、.cppに次のものが必要でした。

QSettings* Settings::settings = NULL;
4

0 に答える 0