Rust 和 C++¶
1 构造函数和类型转换¶
https://geo-ant.github.io/blog/2023/rust-for-cpp-developers-constructors/
- 初始化: 在 C++ 中,构造函数用于初始化实例,在 Rust 中通过关联函数(如
new
)实现。 - 强制不变性: 构造函数有助于强制类型的不变性。在 Rust 中,可能失败的构造函数返回
Result<Self, Error>
。 - 默认构造函数: 在 C++ 中,默认构造对于许多操作都很重要,在 Rust 中通过实现
Default
trait 实现,通常使用#[derive(Default)]
进行简化。 - 复制构造函数: 在 C++ 中的复制构造函数在 Rust 中通过实现
Clone
trait 实现,以允许显式复制。 - 可平凡复制类型: C++ 中的可平凡复制类型概念类似于 Rust 的
Copy
trait,允许进行字节对字节的复制。 - 移动构造函数: Rust 的移动语义消除了 C++ 中移动构造函数的需求。
- 类型转换: C++ 中的转换构造函数在 Rust 中通过实现
From
和Into
trait 实现,强调了显式性,而可能失败的转换使用TryFrom
和TryInto
trait。