#ifndef test.h
#define test.h#include<iostream>
using namespace std;
class Singleton
{
public:
static Singleton* getinstance()
{
return instance;
}
private:
Singleton();
~Singleton();
//Singleton(const Singleton& s);//参数也不能有s ,错误
Singleton(const Singleton&);//拷贝构造函数,Singleton& operator = (const Singleton&);//这个赋值运算符重载函数不会写,要记住,注意是"类类型引用"+ "operator=” + “(const 类类型引用参数)”
//oparator = (const Singleton&)是返回值为Singleton&的函数
private://这个是为了清晰,将函数与变量分开。static Singleton* instance;//静态私有对象,让这个静态私有对象在public方法里被获取到。
};/*
#include<iostream>
using namespace std;
class CSingleton
{
private:
CSingleton(){ cout << "单例对象创建!" << endl; };
CSingleton(const CSingleton &);
CSingleton& operator=(const CSingleton &);
~CSingleton(){ cout << "单例对象销毁!" << endl; };static CSingleton *myInstance; // 这里改了!
public:
static CSingleton* getInstance()
{
return myInstance; // 这里也改了!
}
};
*/
#endif
原因:宏定义里不能出现"点",即test后的点,另外宏一般为大写。