在开发过程中编译报错误调用单例处报单例类的析构是私有的企图调用私有的析构函数但是我单例就是要把析构给私有话啊结论说在前面是由于获取单例句柄的函数返回值缺少引用符导致。class Test{ public: // 此处错误应该为 static Test GetInstance() static Test GetInstance(){ static Test boject; return object; } private: Test(){} ~Test(){} }此处缺少了导致传出去的值而不是引用对于使用处的函数而言void User::UserStaticFunction() { // 错误情况下此处返回的是一个值发生了拷贝 auto value Test::GetInstance(); // 函数结束RAII机制将回收value自然会调用析构 }函数中单例返回了一个值将其赋值给另外一个变量value这个值将会被拷贝一遍对于这个函数而言就多了一个局部变量作用域结束时需要回收因此会调用析构编译器也就识别到此处代码有逻辑错误。但是当单例返回的是引用时调用的函数只是多了一个引用不会调用到析构。