单例模式

最后更新于:2022-04-02 02:15:46

[TOC] ## 概述
person.h ``` #ifndef PERSON_H #define PERSON_H #include #include #include class Person : public QObject { Q_OBJECT public: explicit Person(QObject* parent=nullptr):QObject(parent){ } static Person* instance(){ static Person* person=nullptr; if(person==nullptr){ qDebug()<<"init person"; // 当处理堆对象时,千万注意不要产生内存泄漏。可以利用 Qobject的父-子关系来防止 person=new Person(qApp); } return person; } void show(){ qDebug()<<__FUNCTION__<className(); } }; #endif // PERSON_H ```

调用 ``` Person::instance()->show(); Person::instance()->show(); // output: // init person // show Person // show Person ```
';