シングルトンのデザインパターンについて学んでいます。次のコード例があります。
//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;
この行は何をどのように行うのですか? 私はこのようなものを見たことがありません。