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函数)
分类:
sv-变量&数据类型&类型转换
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?