#include#include class TestSingleton { public: static TestSingleton *create_instance(void) { if (instance_ == nullptr) { instance_ = new TestSingleton(); if (instance_ && instance_->init() < 0) { std::cerr << "fail to create TestSingleton instance" << std::endl; } } return instance_; } void destroy(void) { delete instance_; } int print_name(void) { std::cout << name_ << std::endl; }; private: TestSingleton() { name_ = "TestSpace"; } ~ TestSingleton() { }; int init(void) { return 1; } static TestSingleton *instance_; std::string name_; }; TestSingleton *TestSingleton::instance_ = nullptr;
- 私有的静态指针变量,以及public的create_instance()函数
- 私有的构造函数和析构函数(防止唯一实例在其他地方被创建)
(静态成员函数可以访问私有成员,唯一的区别是,静态成员函数没有this指针,只能用对象实例指针来访问私有成员)



