• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Перегрузка Конструкторов

  • Автор темы Автор темы Stashevckiy
  • Дата начала Дата начала
S

Stashevckiy

Здравствуйте! Подскажите, пожалуйста, кто-нибудь, если в программе имеется перегрузка конструктора, то независимо от количества последних, используется один деструктор для удаления объекта? У меня один конструктор принимает 3 переменных типа int, а второй помимо того, что принимает, еще и динамически выделяет память под чаровский массив. И вот когда я в деструкторе удаляю командой delete [] mass этот массив, это призводит до крита в программе. Без этой строчки все норм. Но, как бы, по правилам, выделенную память нужно же освободить. Так что, как то вот так. Жду ответов. Спасибо! :lol:
 
В первом кострукторе mass обнуляется, или остается неинициализированным? В последнем случае будет тебе вылет при удалении указателя в никуда.
 
Деструктор всегда один.
Тебе нужно в каждом конструкторе инициализировать указатель на массив нулём, т.е, к примеру: p = NULL;.
А в деструкторе у тебя получается так: if ( p ) delete [] p;
 
В первом не инициализирован остается. Попробую сделать, как Вы сказали.
 
Там пробовать не надо. Там просто надо сделать так, как я сказал. Это решит проблемы с выделением памяти.
 
Да, все получилось, спасибо за консультацию всем)
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab