单例中自动内存管理

来源:互联网 发布:柱状图制作软件 编辑:程序博客网 时间:2024/06/17 00:04
#include<iostream>#include<string>using namespace std;//单例就是一个类中只有一个实例(对象)class print{//构造函数一定要私有,这样外部就创建不了对象private:print(){ number = 0; };print(const print& p){};private:static print* Pprint;int number;//定义一个私有内部类自动释放单例内存class Garbage{public:~Garbage(){if (print::Pprint != NULL){delete print::Pprint;print::Pprint = NULL;}}};/*静态变量的生成和释放都是操作系统负责调用的,这样在Garbage销毁的时候,会自动进入Gar的析构函数,即Garbage类的析构函数,我们在这个函数里进行释放单例对象的操作,这样就可以做到自动释放了*/static Garbage Gar;public:static print* get()//给外部一个访问对象的静态成员方法{return Pprint;}void getprint(string text){cout << text << endl;cout << ++number << endl;}};print* print::Pprint = new print;print::Garbage print::Gar;void test(){print* p1=print::get();p1->getprint("aaa");}int main(){test();system("pause");return 0;}


单例就是创建一个实例,在外部提供一个成员方法访问对象

原创粉丝点击