请帮助.. 我有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
不,我正在做另一个类的构造函数 –