将对象复制到D中的赋值中吗?

Jer*_*oen 3 d reference ownership copy-assignment

当我在D中分配一个对象时,它会被复制吗?

void main() {
    auto test = new Test(new Object());
    tset.obj;
}

class Test {
    public Object obj;

    public this(Object ref origObj) {
        obj = origObj; // Will this copy origObj into obj, or will origObj and obj point to the same data? (Is this a valid way to pass ownership without copying the object?)
    }
}
Run Code Online (Sandbox Code Playgroud)

kvi*_*iri 5

仅复制引用,对象本身不重复.您可以使用.dup虽然显式复制对象.

  • 你必须为你试图首先复制的任何类声明一个`dup`方法,就像你必须在Java或C#中定义`clone`方法一样.在D中没有内置的复制/克隆/复制类的方法. (2认同)