两个复制功能中的哪一个更好?
一个。使用对函数参数的引用:
function void copy(ref MyClass copyme);
MyClass copyme = new this;
endfunction
B中。返回新实例化的副本:
function MyClass copy();
return new this;
endfunction
答案 0 :(得分:6)
像A这样的东西是copy()的首选。使用clone()进行创建然后复制。复制和克隆通常写为
class Myclass;
int A;
function void copy(Myclass rhs)
this.A = rhs.A;
endfunction
virtual function Myclass clone();
clone = new();
clone.copy(this);
endfunction
endclass
请注意,clone
虚拟,copy
非虚拟。此外,您不需要将类句柄作为ref
参数传递 - 类变量已经是引用。