gpt4 book ai didi

c++ - C2248 : cannot access private member declared in Singleton class如何解决

转载 作者:太空宇宙 更新时间:2023-11-04 13:52:36 33 4
gpt4 key购买 nike

请帮忙...我有单例类,但无法获取它的实例。

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(); 

请你解释一下我做错了什么。

最佳答案

你的构造函数是私有(private)的,所以你不能创建你的类的对象。

关于c++ - C2248 : cannot access private member declared in Singleton class如何解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22886418/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com