Задать вопрос
@cryptohas

Почему появляется SIGABRT в данном случае?

При попытке вызвать конструктор класса с параметром типа "string", вылеает ошибка SIGABRT:

//WebDriver.h
WebDriver::WebDriver(const string& domain);

//main.cpp
WebDriver driver("sitename.com"); //SIGABRT

Вопрос сильно усложняется тем, что переменная domain в WebDriver не делает вообще ничего. При попытках ставить брейкпойнты на первых строчках кода конструктора, отладчик даже не доходит до исполнения этого кода:

WebDriver::WebDriver(const string& domain){ //SIGABRT
    int port = 443; // до сюда не доходит исполнение
    //.....    
}

Но если убрать параметры у класса, исполнение проходит без ошибок:

WebDriver::WebDriver(){
    int port = 443; // OK
    //.....    
}
  • Вопрос задан
  • 222 просмотра
Подписаться 1 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик на C++
    12 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Skillbox
    Профессия Разработчик С++
 с нуля + ИИ
    7 месяцев
    Далее
Решения вопроса 1
@cryptohas Автор вопроса
Ошибка крылась не в аргументах, а полях класса:

class WebDriver{
QJSEngine js;
//...
};


QJSEngine требовал инициализации некоторых значений ещё до вызова конструктора WebDriver:

QApplication a(argc, argv); // Этого кода не было
WebDriver driver("domain"); //Теперь все хорошо


Если вылетает ошибка до выполнения кода конструктора, стоит проверить переменные этого класса
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Uniscan Research Новосибирск
от 140 000 до 200 000 ₽
АО НПП «АМЭ» Санкт-Петербург
До 250 000 ₽
Базис-Центр Коломна
от 70 000 до 500 000 ₽