シングルトン
C++でのシングルトンをJavaと同じように書いてみたら、
コンパイルは通るけど、ビルドで落ちました…(´Д`;
小一時間悩んでも分からなかったので、ネットで調べたらこんなものが…。
http://www.01-tec.com/document/cpp_design_pattern.html#Singleton
そうか、ヘッダファイルは宣言だけで、
実体はCPPファイルに書かなければいけないのか〜、
などと基本的な間違いをしておりました…。
ということで、以下、サンプル。
<Singleton.h>
#pragma once #include <iostream> using namespace std; class CSingleton { private: static CSingleton m_Singleton; CSingleton() {}; public: static CSingleton *GetInstance() {return &m_Singleton;}; void SayHello() {cout << "Hello" << endl;}; };
<Singleton.cpp>
#include ".\singleton.h" CSingleton CSingleton::m_Singleton;
<main.cpp>
#include "Singleton.h" void main() { CSingleton::GetInstance()->SayHello(); }
まだまだ、勉強が必要ですね、、。
っていうか、なんでprivateな名前空間のインスタンスを外部で作れるんじゃ〜!
と、一人で怒ってみる。(´Д`;ハァ