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

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

Stashevckiy

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

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

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab