Справедливо ли утверждение: если класс имеет динамические поля, то обязательно надо программировать деструктор? 
 
Другие предметы Университет Деструкторы в ООП объектно-ориентированное программирование ООП деструктор динамические поля классы программирование университет
Утверждение о том, что если класс имеет динамические поля, то обязательно надо программировать деструктор, в общем случае справедливо. Давайте разберем, почему это так.
new в C++), вы вручную выделяете память в куче.delete).new, вы должны написать деструктор, чтобы освободить эту память с помощью delete.std::unique_ptr или std::shared_ptr в C++), они автоматически управляют памятью, и в этом случае необходимость в явном деструкторе может отпасть.Таким образом, в большинстве случаев, когда вы используете динамическую память, вам нужно явно определить деструктор, чтобы избежать утечек памяти, если только вы не используете механизмы автоматического управления памятью, такие как умные указатели.