微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 对象的复制

对象的复制

时间:10-02 整理:3721RD 点击:
请问下大家,在看绿皮书时,对象的复制看不懂,下面的代码:class Transaction
bit [31:0] addr, crc, data[8];
static int count = 0;
int id;
Statistics stats;

function new;
stats = new();
id = count++;
endfunction
endclass
Transaction src, dst;
initial begin
src = new();//创建一个Transaction对象
src.stats.startT = 42;
dst = new src; //用new操作符将src拷贝到dst中,结果dst与src一样
dst.stats.startT = 96;
$display(src.stats.startT);
end

复制完以后,dst与src指向同样的内容,但是为什么改变了dst,src指向的内容会改变?还有什么叫shallow copy?
谢谢!

这就是浅拷贝的特性呀,书上应该有说,两个对象本身的方法和属性可以独立,但里面引用的对象是共有的,改变一个,另外一个也同时改变。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top