Оператор delete в деструкторах

217
05 февраля 2018, 05:26

Подскажите пожалуйста, я правильно понимаю, что этот оператор в деструкторе используется только применительно к атрибутам, являющимися указателями на объекты других классов, в случае же например vector или string, или int[5] (и к переменным примитивного типа) использовать нужный оператор не нужно?

Answer 1

Понимаете, ну ответить на ваш вопрос "да - да, нет - нет, а что сверх того, то от лукавого" - нельзя. Применяйте delete к тем указателям, которые должны быть уничтожены. Это не обязательно указатель на объект другого класса (например, вы можете выделить память для строки в стиле C - это указатель на char). Его может быть не нужно применять даже к атрибуту-указателю - например, при работе со счетчиком ссылок.

Словом, тут очень много тонкостей. Но если рассматривать только тривиальные случаи - типа выделения памяти в конструкторе и освобождения в деструкторе - то да, вы понимаете правильно...

READ ALSO
c++ телефонный номер [требует правки]

c++ телефонный номер [требует правки]

Телефонный номер называют "шахматным", если его цифры набирают на кнопочной панели телефона ходом шахматного коня

233
Java. JFrame, pack(), setResizable()

Java. JFrame, pack(), setResizable()

Здравствуйте!

216