В проекте создается экземпляр класса DatabaseManager. В нем я создаю экземпляры класса Database в функции setupNewDatabase. Когда я пытаюсь добавить в QMap<QString, Database*> указатель и ключ, приложение выдает SIGSEGV и останавливает на вызове функции detach() в классе QMap. Выполняется все в одном потоке.
Код:
#pragma once
#include <QObject>
#include <QMap>
#include <QMapIterator>
#include "../core/database.h"
class DatabaseManager : public QObject
{
Q_OBJECT
public:
explicit DatabaseManager(QObject *parent = nullptr);
~DatabaseManager();
bool setupNewDatabase(QString competition);
private:
QMap<QString, Database*> m_Databases;
};
#include "databasemanager.h"
DatabaseManager::DatabaseManager(QObject *parent) : QObject(parent) {
}
bool DatabaseManager::setupNewDatabase(QString competition) {
Database *database = new Database();
if (database->createDatabase(competition)) {
m_Databases.insert(competition, database); << CRASH
return true;
} else {
m_lastDatabaseError = database->lastError();
database->deleteLater();
return false;
}
}
Не был инициализирован класс DatabaseManager(да, очень тупая ошибка)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости