在阅读有关 Drop 特性时,我发现Rust的drop方法与C++中的析构函数之间有很多相似之处。两者有什么区别?

最佳答案

在实践中,没有明显的区别。两者均在适当时用于清除类型的资源。



是的。实质上,编译器会为程序员没有自动实现的任何类型自动实现Drop。这种自动实现只是简单地依次为每个成员变量调用drop

如果您分配Rust不知道的资源,例如直接从分配器分配内存,Rust将不会知道需要删除返回值或如何删除返回值。那就是您直接实现Drop的时候。

也可以看看:

  • Running Code on Cleanup with the Drop Trait
  • 关于c++ - Rust的Drop和C++的析构函数之间有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53324276/

    10-15 16:33