c++ - 多文件访问单例类

标签 c++ singleton global-variables

我有一个单例类。

在啊

class single
{
    public:
        static single *Instance;
        static single* getInstance()
        { if(!Instance) Instance = new single; 
          return Instance;
        }
        void hello () { cout<<"Hello"; }
    private: single(){ }
}

在 A.cpp 中

single *single::Instance = 0;
std::auto_ptr <single> SINGLE_OBJ (single::getInstance());

在 B.cpp 中

#include "A.h"

SINGLE_OBJ->hello();

我收到以下错误: SINGLE_OBJ 未在此范围内声明。

最佳答案

要使 SINGLE_OBJB.cpp 中可见,您应该在 A.h. 中声明它,即:

extern std::auto_ptr <single> SINGLE_OBJ;

此外,您为什么要使用 std::auto_ptr,它已被弃用 - 您应该切换到 std::unique_ptr

关于c++ - 多文件访问单例类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34131944/

相关文章:

c++ - 在 C++ 中创建继承结构时如何设置父成员

Java '.class' 预期错误

java - 什么时候应该创建/打开 EntityManagerFactory 实例?

c - .h 文件中全局变量的链接器错误

c - 全局变量似乎不占用任何内存空间

c++ - 使用 boost::signals2 处理许多信号/槽的连接/断开

c++ - double 或浮点比较

c++ - MFC:混淆 ON_COMMAND 函数?

ruby - BasicObject 的 singleton_class 的父类(super class)如何以及为什么是 Ruby 中的 Class 类?

c# - 状态很重要的对象的最佳设计模式 - 单例或静态