В проекте создается экземпляр класса 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
(да, очень тупая ошибка)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Будет ли работать _set_se_translator в dll, собранной с флагом /EHa, если подключить такую dll к проекту без такого флага?
Здравствуйте я начал осваивать C++ примерно месяц назадПока что разобрался только с консолью и захотел сделать нормальное приложение, но я совсем...
Сейчас я расширяю от FragmentActivity вот так: