我有以下单例类的测试应用程序:
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()'
的引用答案 0 :(得分:1)
您需要定义构造函数。目前它被声明为私有,但未定义。由于你的构造函数很简单,你可以做的最好的事情是
private :
my_singleton() = default;
另外,您可能还希望delete
复制构造函数。