#pragma once
class singleton
{
public:
//static int a;
static singleton * getinstance()
{
if (!instance)
{
instance = new singleton();
}
return instance;
}
static void release()
{
if (!instance)
{
delete instance;
instance = NULL;
}
}
protected:
singleton()
{
//instance
}
static singleton* instance;
};
class singleton
{
public:
//static int a;
static singleton * getinstance()
{
if (!instance)
{
instance = new singleton();
}
return instance;
}
static void release()
{
if (!instance)
{
delete instance;
instance = NULL;
}
}
protected:
singleton()
{
//instance
}
static singleton* instance;
};
singleton* singleton::instance = NULL;
这句话一定要有。。。居然忘记类静态成员怎么初始化的。。。C++类静态数据成员要放在全局空间初始化。
// C++面向对象编程练习.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include "vector.h"
#include "singleton.h"
#include "singleton.cpp"
using namespace std;
int main()
{
//int a = singleton::a;
//test
singleton *s = singleton::getinstance();
singleton *s1 = singleton::getinstance();
if (s == s1)
{
cout << "YES"<< endl;
}
s->release();
return 0;
}