我要做的是创建一个指向单个类实例函数的函数指针。我想这样做,所以我可以这样做:
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();
};
提前致谢
答案 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。