在C++中调用单一实例对象的正确方法
Correct way to call a singleton object in C++
我根据这里发布的点击量构建了一个单例类。
我用一个getMessage()
函数扩展了它,它将检索内部字典消息 - 字典只需要在整个应用程序上加载一次,这就是单例的原因。
我的代码:
辛格尔顿.hpp
class Singleton {
public:
static Singleton& getInstance();
std::string getMessage(std::string code);
private:
Singleton() {};
Singleton(Singleton const&) = delete;
void operator=(Singleton const&) = delete;
};
辛格尔顿.cpp
Singleton& Singleton::getInstance()
{
static Singleton instance;
return instance;
}
std::string Singleton::getMessage(std::string code)
{
/// Do something
return "Code example.";
}
和主要代码:
主.cpp
int main()
{
Singleton* my_singleton;
my_singleton = Singleton::getInstance(); **<-- ERROR HERE**
cout << my_singleton->getMessage("a"); << endl
}
主要给了我一个错误:Cannot convert 'Singleton' to 'Singleton*' in assignment
"实例化"单例并使用 getMessage 函数的正确方法是什么。
非常感谢您的帮助...
你
只是像这样调用函数怎么样:
Singleton::getInstance().getMessage("a");
而不是将其分配给变量。
您希望存储对单例的引用,而不是指针。
Singleton& my_singleton = Singleton::getInstance();
相关文章:
- 使用std::函数映射对象方法
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- 按对象的特定方法按升序排列的C++优先级队列
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 从父类方法返回子类对象
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 为什么此派生对象无法访问基类的后递减方法?
- c++, 在子类中,如何在没有对象的情况下访问父类的方法?
- 正在调用shared_ptr对象方法
- 将方法转换为调用该方法的成员函子对象会导致崩溃
- 检查哪个对象调用了另一个对象的对象方法
- CPU 瓶颈;处理具有许多非静态对象的 3D 场景渲染的简单方法
- 直接在 unordered_map 的方法中使用哈希,而不是生成哈希的用户定义对象
- 没有取消引用/解包对象的标准方法?
- 使用 gmock c++ 在真实对象上调用方法
- 当我调用对象的方法时,对象的成员会发生变化
- 根据对象类调用不同的方法
- 如何在C++中循环访问未知对象方法?
- 使用动态实例化的对象填充矢量的快速方法
- 对类中的对象使用方法