指向单例 class 实例函数的函数指针

Function pointer to singleton class instance function

我想做的是创建一个指向单个 class 实例函数的函数指针。我想这样做,所以我可以做这样的事情:

C->member_method();

而不是:

Config::inst()->member_method();

但我不确定该怎么做。这是我的单身人士 class:

class Config {
private:
    Config() {}

    static Config* m_instance;

public:
    ~Config() {}

    static Config* inst() {
        if (m_instance == nullptr) {
            m_instance = new Config;
        }
        return m_instance;
    }

    bool load();
};

提前致谢

为门面使用静态 class 方法,让您使用自己喜欢的语法:

class Config {

    // The declarations you already have, then:

public:

    static void member_method()
    {
        inst()->member_method_impl();
    }
private:
    void member_method_impl();
};

然后,只需调用:

Config::member_method();

如果您只想使用 class 类似指针的语法,则无需声明任何内容。只需使用:

auto C=Config::inst();

然后:

C->member_method();

简单地创建一个没有静态方法的普通 class,抛弃单例模式,并创建一个实例。

单例模式的负担usually outweigh any benefit