SV-对象复制和赋值问题(华为2020实习生机试)

原题

class Thing;
		int data;
endclass

module test();
Thing t1,t2,t3;
initial begin
	t1 = new();
	t1.data=3;
	t2=new();
	t2.data=4;
	t3 = new t2;

	t2=t1;
	t2.data=8;

	$display("t1.data:%0d\n",t1.data);   //8,t2新赋的值给到t1,说明t2句柄指到了t1的存储空间
	$display("t2.data:%0d\n",t2.data);   //8
	$display("t3.data:%0d\n",t3.data);   //4,t2新赋的值没有给到t3,说明通过new复制的对象本身是有int data的存储空间的

	t2 = t3;
	t3.data=8;
	$display("t3.data:%0d\n",t3.data);   //8
	
end

endmodule

解释

句柄就像指针

posted @ 2020-05-01 15:09  笑着刻印在那一张泛黄  阅读(736)  评论(0编辑  收藏  举报