Singleton in C++
Singleton in C++
我正在学习Singleton设计模式。我有以下代码示例:
//singleton.hpp
#ifndef SINGLETON_HPP
#define SINGLETON_HPP
class Singleton {
public:
static Singleton& Instance();
private:
Singleton();
static Singleton* instance_;
};
#endif
和:
//singleton.cpp
#include "singleton.hpp"
Singleton* Singleton::instance_ = 0;
Singleton& Singleton::Instance() {
if (instance_ == 0) {
instance_ = new Singleton();
}
return *instance_;
}
Singleton::Singleton() {
}
我不明白的是:
Singleton* Singleton::instance_ = 0;
这条线是做什么的,怎么做的?我从来没有见过这样的事。
Singleton* Singleton::instance_ = 0;
只是指
Singleton* Singleton::instance_ = NULL;
因为它是静态变量,所以需要在.h文件中声明它,并在.cpp文件
与相同
Singleton* Singleton::instance_ = NULL;
它只是在开始时将实例设置为null,这样当您第一次获取Singleton时,它将新建Singleton对象。
从那时起,每当你试图获得Singleton时,它都会给你第一个实例化的对象。
相关文章:
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- 将 lambda 表达式传递给 std::function in C++
- @CPPFLAGS@在 Makefile.in 中意味着什么?
- std::async from std::async in windows xp