[C++] 单件模式的一般实现
#include <iostream> #include <string> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; class L { public : static L* instance() { if(!pi) { pi = new L(); } return pi; } virtual ~L() { if(pi) { delete pi; pi = 0; } }; static L* pi; protected : L() {}; // 防止产生实例 L(const L&); // 防止复制构造另一个实例 L& operator= (const L&); // 防止赋值构造出另一个实例 }; L* L::pi = NULL; int main() { L::pi = L::instance(); return 0; }