請幫助.. 我有singleton類,但無法獲取它的實例。如何解決C2248:無法訪問在Singleton類中聲明的私有成員
dbinfogetterdao.h
#ifndef MATRIXGETTERDAO_H
#define MATRIXGETTERDAO_H
#include <QtSql/QSqlDatabase>
namespace Ui{
class DBInfoGetterDAO;
}
class DBInfoGetterDAO
{
public:
static DBInfoGetterDAO& getInstance();
private:
DBInfoGetterDAO();
DBInfoGetterDAO(DBInfoGetterDAO const&);
void operator=(DBInfoGetterDAO const&);
};
#endif // MATRIXGETTERDAO_H
dbinfogetterdao.cpp
#include "dbinfogetterdao.h"
#include <QtSql/QSqlDatabase>
#include <QDebug>
#include <QSqlError>
#include <QSqlQuery>
DBInfoGetterDAO& DBInfoGetterDAO::getInstance()
{
static DBInfoGetterDAO instance;
return instance;
}
DBInfoGetterDAO::DBInfoGetterDAO()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("mdpschema");
db.setUserName("root");
db.setPassword("password");
bool ok = db.open();
qDebug() << "db connection status = " << ok;
QSqlError error = db.lastError();
if (ok == false){
qDebug() << "error text = " + error.text();
}
}
我創建這樣的實例:
DBInfoGetterDAO dbInfoGetterDAO = DBInfoGetterDAO::getInstance();
請你能解釋我做錯了什麼。
我從這裏找到了示例:http://stackoverflow.com/a/1008289/2015948也有私人構造函數。 –
你在做這個主嗎? DBInfoGetterDAO dbInfoGetterDAO = DBInfoGetterDAO :: getInstance(); – Bramsh
不,我正在做另一個類的構造函數 –