使用单例类时未定义的引用

时间:2016-04-25 13:26:26

标签: c++

我有以下单例类的测试应用程序:

class my_singleton {
   private :
      my_singleton();
   public :
      static my_singleton& getinstance() {
         static my_singleton instance;
         return instance;
      }
    void demo() {
       std::cout << "demo !!!!" << std::endl;
    }
};

int main(int argc, char* argv[]) {
   my_singleton::getinstance().demo();
}

当我编译相同的时候我得到:

未定义对`my_singleton :: my_singleton()'

的引用

1 个答案:

答案 0 :(得分:1)

您需要定义构造函数。目前它被声明为私有,但未定义。由于你的构造函数很简单,你可以做的最好的事情是

   private :
      my_singleton() = default;

另外,您可能还希望delete复制构造函数。