一位 Rust 初学者用亲手实验探究 dyn Trait 与 C++ 虚函数在内存层面的差异,拒绝把 Rust 当成换了语法的 C++。文章带读者走一遍静态分发(monomorphization,对应 C++ 的 CRTP 思路)与动态分发(dyn Trait,对应虚函数),并意外发现零大小类型(ZST):空 struct 的尺寸是 0,因为 Rust 用所有权而非地址追踪身份,debug/release 下 ZST 的地址行为也因此不同。