单例类实例函数的函数指针

时间:2015-06-14 20:10:29

标签: c++ oop pointers singleton

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

C->member_method();

而不是:

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

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

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();
};

提前致谢

2 个答案:

答案 0 :(得分:1)

对Facade使用静态类方法,让您使用首选语法:

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();

如果您只想使用类指针式语法,则不需要声明任何内容。只需使用:

auto C=Config::inst();

然后:

C->member_method();

答案 1 :(得分:1)

只需创建一个没有静态方法的普通类,抛弃单例模式,然后创建一个实例。

单身人士模式的负担usually outweigh any benefit