在游戏开发过程中,我们时常会遇到单例模式的运用场景。比如你游戏当中的最终BOSS,你希望你的BOSS只能有一个,所以这里你就可以用单例模式;那么什么是单例模式呢?看下面的代码分析。
#include <cstdlib>
#include <iostream>
using namespace std;
class Singleton
{
private:
static Singleton* instance;
Singleton()
{
}
public:
static Singleton* GetInstance()
{
if (instance == NULL)
{
instance = new Singleton;
cout << "I am new!" << endl;
}
return instance;
}
void TestOut()
{
cout << "void TestOut()" << endl;
}
};
Singleton* Singleton::instance = NULL;
int main(int argc, char *argv[])
{
//Singleton* s1 = new Singleton;//不能再new出对象了
Singleton* s2 = Singleton::GetInstance();
Singleton* s3 = Singleton::GetInstance();
Singleton::GetInstance()->TestOut();
cout << s2 << endl;
cout << s3 << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
上面就实现了一个单例类,把构造函数私有之后,你就不能在new出新的对象,而且你每次获取到的对象都只有一个,所以这样我们游戏中的最终BOSS只能有一个。