当前位置: 首页 > news >正文

对象的复制

方式一:sv 的new函数

trans tr1,tr2;
malbox.get(tr2);
tr1 = new tr2;//仅用于浅拷贝,拷贝后tr1,tr2为两个独立的对象

方式二:uvm 域的自动化常用函数:copy / clone / 

使用前提:

1. 函数都可用于uvm_object类型,copy 还可用于component类型; 

2. 源对象和目的对象需已经注册在工厂中,注册方式如下:

`uvm_field_int(idx,UVM_ALL_ON) //参数注册

注:如果注册时使用了if,那么不满足条件的参数将不会被注册,以就不能使用函数了;

使用方法:

1. copy 

trans tr1 tr2;tr1 = new;//copy在使用前需创建对象malbox.get(tr2);tr1.copy(tr2);//仅浅拷贝,copy是void类型函数

2. clone

trans tr1 tr2;malbox.get(tr2);if(!$cast(tr1,tr2.clone))//仅浅拷贝,clone在使用时,tr1为空句柄(不需要提前创建对象,因为clone=new+copy)
`uvm_error()

总结:

1. 两个方式的拷贝结果一致,使用方式略有不同;

2. 两种方式的拷贝均只用于浅拷贝,如果需要深拷贝,需要自行写出copy函数;

浅拷贝:仅拷贝变量和句柄,不拷贝句柄的对象;所有拷贝前后的两个句柄指向同一个对象;

深拷贝:拷贝变量/句柄/句柄所指向的对象;拷贝前后两个句柄指向两个不同的对象;

相关文章:

  • 【Android Studio】APP练手小项目——切换图片APP
  • 2024开放式耳机测评推荐榜单曝光!超热门开放式耳机选购攻略
  • C++牛客知识点3
  • kubectlkubeletrancherhelmkubeadm这几个命令行工具是什么关系?
  • vue项目心得(复盘)
  • 使用群晖docker将小爱音箱接入chatgpt
  • 玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 编译构建及此过程中的踩坑填坑(3)
  • Python用法:if __name__ == “__main__“的作用
  • 【漏洞复现】锐捷RG-UAC统一上网行为管理系统信息泄露漏洞
  • 【数据库系统概念】第三章 SQL语句(下)~重要!!!
  • oracle重启数据库lsnrctl重启监听
  • TDengine 签约西电电力
  • DevExpress历史安装文件包集合
  • 使用Nonebot编写QQ机器人
  • 【以题代复习】计算机网络 第二章
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Android 架构优化~MVP 架构改造
  • Docker下部署自己的LNMP工作环境
  • Linux中的硬链接与软链接
  • Redis 中的布隆过滤器
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 服务器从安装到部署全过程(二)
  • 浮动相关
  • 使用SAX解析XML
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (ZT)薛涌:谈贫说富
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (二开)Flink 修改源码拓展 SQL 语法
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (一)SpringBoot3---尚硅谷总结
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)memcache、redis缓存
  • (转)nsfocus-绿盟科技笔试题目
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转载)虚函数剖析
  • .NET 事件模型教程(二)
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .Net小白的大学四年,内含面经
  • @GetMapping和@RequestMapping的区别
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [BZOJ 2142]礼物(扩展Lucas定理)
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
  • [C++]C++类基本语法
  • [C++参考]拷贝构造函数的参数必须是引用类型
  • [CentOs7]iptables防火墙安装与设置
  • [C语言][C++][时间复杂度详解分析]二分查找——杨氏矩阵查找数字详解!!!
  • [Go WebSocket] 多房间的聊天室(三)自动清理无人房间
  • [hadoop读书笔记] 第十五章 sqoop1.4.6小实验 - 将mysq数据导入HBASE
  • [HTTP]HTTP协议的状态码
  • [JS] node.js 入门