class Logger {
public:
static Logger & getInstance() {
return instance;
}
private:
Logger();
~Logger();
Logger(const Logger &other); //只聲明, 不實(shí)現(xiàn), 防止復(fù)制和賦值操作.
Logger& operator=(const Logger &other);
static Logger instance; //這里沒有使用指針實(shí)現(xiàn), 如果使用指針, 一定要使用auto_ptr, 因?yàn)槠胀ㄖ羔樤谶@里不會被釋放內(nèi)存, 只有程序結(jié)束后回收給系統(tǒng), 但如果這個類持有一些資源, 如網(wǎng)絡(luò)連接等, 到時就麻煩了.
};
#include "Logger.h"
#include <qDebug>
Logger Logger::instance; //***********這一句非常重要, 如果少了, 程序就會出錯.
Logger::Logger() {
qDebug() << "Construct";
}
Logger::~Logger() {
qDebug() << "Destruct";
}