Если вы хотите узнать, что такое отвлекающий фактор, нажмите здесь.
Удаление объекта производного класса с помощью указателя типа базового класса, который имеет не виртуальный деструктор, приводит к неопределенному поведению.
Чтобы исправить эту ситуацию, базовый класс должен быть определен с виртуальным деструктором.
Итак, без виртуального отвлекающего фактора. Посмотрите, что произойдет, когда мы создадим объект-указатель в функции main() Вот код:
Простая программа для дистрактора:-
Вывод этого кода:
Теперь давайте напишем такой код:
Здесь вы видите после удаления obj_PTRderived, если мы создадим Create Base *objPTR_base2 = new Derived(); и после этого, если мы удалим это так, удалите objPTR_base2;
Теперь вывод кода:
Здесь вы не видите вывода для «Вызван дистрактор производного». Это проблематично, поэтому как исправить этот ответ, очевидно, — виртуальный деструктор
Таким образом, фиксированный код
Вывод этого кода:
Вот и все. Спасибо, что прочитали.
Если вы свяжетесь со мной
Linkedin — https://www.linkedin.com/in/diganta-chaudhuri-8451251b6
Твиттер — https://twitter.com/Digantachaudhu2
Спасибо❤