#include <iostream>
#include <vector>
class SingleClass{
public:
static std::shared_ptr<SingleClass> GetSingle();
// 禁止拷贝构造函数
SingleClass(const SingleClass& single)= delete;
// 禁止复制构造函数
SingleClass&operator=(const SingleClass & single) = delete;
private:
SingleClass();
std::shared_ptr<int> single_;
};
SingleClass::SingleClass() {
int * a = new int(10);
single_ = std::make_shared<int>(11);
std::cout << "single class create:" << *single_ << std::endl;
}
std::shared_ptr<SingleClass> SingleClass::GetSingle() {
static SingleClass single_class;
return single_class.GetSingle();
}
int main() {
std::shared_ptr<SingleClass> single_class = SingleClass::GetSingle();
return 0;
}
c++ 单例模式
最新推荐文章于 2024-08-22 00:23:00 发布