gpt4 book ai didi

c++ - Qt 与 SQLite 中的静态链接问题

转载 作者:行者123 更新时间:2023-11-30 00:59:22 24 4
gpt4 key购买 nike

我的 C++ 应用程序中存在静态链接问题。我希望你能帮忙。下面的 header 和源代码。

#ifndef PRACTICARDSDB_H
#define PRACTICARDSDB_H
#include "cardset.h"
#include "card.h"
#include "filter.h"

class PractiCardsDB
{
public:
PractiCardsDB();
static void resetAll();
static void resetDates();
static CardSet getCardSet();
static CardSet getCardSet(Filter filter);
static void addCard(Card card);
static void editCard(Card card);
static void deleteCard(Card card);
static bool createConnection();

};

#endif // PRACTICARDSDB_H

上面是头文件,下面是源文件。

#include "practicardsdb.h"
#include <QtSql/QSqlDatabase>
#include <QMessageBox>

PractiCardsDB::PractiCardsDB() {}
static bool PractiCardsDB::createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("EnglishSpanish");
if (!db.open())
{
return false;
}
return true;
}

我收到的错误是:无法将成员函数“static bool PractiCardsDB::createConnection()”声明为具有静态链接。有什么帮助吗?

如果有帮助,我会在 Qt Creator 中使用 Qt 4.7 和 C++。

最佳答案

当您从声明中单独定义一个static 成员函数时,您不必使用static 修饰符。

bool PractiCardsDB::createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("EnglishSpanish");
if (!db.open())
{
return false;
}
return true;
}

还有,你真的想让你的类的每一个函数都static吗?您的类表示 Card 对象的各种数据库,所以我认为您实际上想要用类本身存储成员数据?

即使在上面的代码片段中,您创建了一个 QSqlDatabase 对象,但是 db 的存在只是 createConnection() 的范围功能。

关于c++ - Qt 与 SQLite 中的静态链接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4539228/

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