4.6类的浅复制(shallow copy)与深复制(deep copy)

资料来源

(1) The UVM Primer;

(2) sv绿皮书;

(3) 硅芯思见:【106】SystemVerilog中的浅复制(shallow copy)和深复制(deep copy) (qq.com)

1.copy(要点是需要先例化)

(1) copy对象不像想象的那么简单,简单的赋值语句obj2_h=obj1_h,并没有为obj2_h创建一个新的对象,而是指向了与obj1_h相同的对象;

(2) 为了真正的copy一个对象,需要先例化,然后copy data,如下图所示;

 

2.Shallow copy

2.1使用new操作符复制一个对象

(1)new操作符创建了一个新的对象,并且复制了现有对象的所有变量;但是如果类中包含一个指向另一个类的句柄,下层的对象都不会被复制;

注1:当调用new操作符进行复制的时候,Transaction对象被拷贝,但是Statistics对象没有被复制;

注2:当调用new操作符进行复制的时候,Transaction的new函数不会被调用;

3.Deep copy(需要调用类所包含的所有对象的copy函数)

 

 

 

posted on   知北游。。  阅读(322)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示