1-ый вопрос



Дата09.04.2023
өлшемі12,34 Kb.
#174060
Байланысты:
1-ый вопрос


1-ый вопрос:
1)
После использования оператора delete, освобождающего память, обязательно должно производиться обнуление указателя, чтобы впоследствии не произвести повторного освобождения данного участка памяти. Как известно, такое освобождение приводит к непредсказуемому поведению программы.
Применение оператора delete к нулевому указателю не имеет никаких последствий, т.е. вы вполне можете писать delete p, не проверяя предварительно адрес p на NULL. За вас это делает RTL.

2)
В Base нужно, в Derived не нужно.


Делать ещё один delete в деструкторе ~Derived() не нужно, потому что при его вызове вызывается деструктор ~Base(), в котором есть delete (мы его заранее добавили)

Достарыңызбен бөлісу:




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет