gpt4 book ai didi

c++ - Rust 的 Drop 和 C++ 的析构函数有什么区别?

转载 作者:搜寻专家 更新时间:2023-10-31 00:52:01 27 4
gpt4 key购买 nike

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

最佳答案

在实践中,没有明显的区别。两者都用于在适当的时候清理一个类型的资源。

Resources will be cleaned up irrespective of implementation of the Drop trait, won't they?

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

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

另见:

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com