【发布时间】:2014-12-17 20:37:24
【问题描述】:
这是一个简单的struct
pub struct Point {
x: uint,
y: uint
}
impl Point {
pub fn new() -> Point {
Point{x: 0u, y: 0u}
}
}
fn main() {
let p = box Point::new();
}
我对构造函数工作原理的理解如下。 new() 函数在其本地堆栈中创建Point 的实例并返回它。此实例中的数据被浅拷贝到box 创建的堆内存中。然后将指向堆内存的指针分配给变量p。
我的理解正确吗?两个单独的内存区域是否被初始化以创建一个实例?与我们直接从构造函数写入实例内存的 C++ 相比,这似乎是一种初始化实例的低效方式。
【问题讨论】:
标签: rust