В чем разница между Rust Drop и деструктором C ++? - PullRequest
0 голосов
/ 15 ноября 2018

Читая о черте Drop, я обнаружил много общего между методом drop Rust и деструктором в C ++.В чем разница между ними?

1 Ответ

0 голосов
/ 15 ноября 2018

На практике заметной разницы нет.Оба используются для очистки ресурсов типа при необходимости.

Ресурсы будут очищаться независимо от реализации черты Drop, не так ли?

Да.Компилятор по существу автоматически реализует Drop для любого типа, в отличие от программиста.Эта автоматическая реализация просто вызывает drop для каждой переменной-члена по очереди.

Если вы выделите ресурс, о котором Rust не знает, например, выделение памяти непосредственно из распределителя, Rust не будет знать, чтовозвращаемое значение нужно отбросить или как это сделать.Именно тогда вы реализуете Drop напрямую.

См. Также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...