单例模式
最后更新于:2022-04-02 02:15:46
[TOC]
## 概述
#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 ```
';
person.h
``` #ifndef PERSON_H #define PERSON_H #include调用 ``` Person::instance()->show(); Person::instance()->show(); // output: // init person // show Person // show Person ```