1.浅拷贝

浅拷贝: 只拷贝对象中的数据变量,而对于对象中的数据操作(一般为任务和函数)和其中定义的其他类的句柄,采用类似“引用”的方式,浅拷贝前后共用同一内存空间。
可以使用new操作符进行复制。如果一个类包含指向另一个类的句柄,只有最高级的对象被new操作符复制,下一层的对象都不会被复制

class Transaction;bit [31:0] addr,crc,data[8];statistics stats;static int count=0;int id;function new;stats=new();id=count++;endfunction
endclass      Transaction src,dst;initial beginsrc=new();src.stats.startT=42;dst=new src;dst.stats.startT=96;display(src.stats.startT);

可以看到,具有相同的id地址,采用类似“引用”的方式,浅拷贝前后共用同一内存空间。

对p2中的a1句柄做操作后将会影响p1中的a1

2.深拷贝

深拷贝: 对象拷贝,对对象中的所有成员变量(包括数据变量、数据操作和其他句柄)统一分配新的内存空间。
可将拷贝对象中所包含的对象拷贝过来,自定义copy函数copy调用了new函数

class Transaction;bit [31:0] addr,crc,data[8];statistics stats;static int count=0;int id;function new;stats=new();id=count++;endfunctionfunction Transaction copy;copy=new();copy.addr=addr;copy.data=data;copy.crc=crc;copy.stats=stats.copy();id=count++;endfunction
endclass Transaction src,dst;initial beginsrc=new();src.stats.startT=42;dst=src.copy();dst.stats.startT=96;$display(src.stats.startT);end


对p2中的a2句柄做操作后将会不会影响p1中的a1


参考:
https://blog.csdn.net/weixin_42162448/article/details/121972033
systemverilog验证测试平台编写指南

SV中的浅拷贝和深拷贝相关推荐

  1. js 浅拷贝直接赋值_JS中实现浅拷贝和深拷贝的代码详解

    (一)JS中基本类型和引用类型 JavaScript的变量中包含两种类型的值:基本类型值 和 引用类型值,在内存中的表现形式在于:前者是存储在栈中的一些简单的数据段,后者则是保存在堆内存中的一个对象. ...

  2. 【转】JAVA中的浅拷贝和深拷贝

    原文网址:http://blog.bd17kaka.net/blog/2013/06/25/java-deep-copy/ JAVA中的浅拷贝和深拷贝(shallow copy and deep co ...

  3. Python中的浅拷贝和深拷贝(一看就懂!!!)

    浅拷贝和深拷贝一直傻傻的分不清,甚至有时候会理解反.今天就简单总结一下python中的浅拷贝和深拷贝. 总结 最直观的理解就是: 1.深拷贝,拷贝的程度深,自己新开辟了一块内存,将被拷贝内容全部拷贝过 ...

  4. Java中的浅拷贝与深拷贝

    一.引用拷贝与对象拷贝 class Person implements Cloneable{private String name;private int age;...省略get和set方法 pro ...

  5. 43 JavaScript中的浅拷贝与深拷贝

    技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.浅拷贝与深拷贝 浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用. 深拷贝拷贝多层,每 ...

  6. 说说JS中的浅拷贝与深拷贝

    outline: 为什么要说JS中深拷贝与浅拷贝 JS对类型的分类 immutable与mutable 简单类型检测 浅拷贝VS深拷贝 为什么要说JS中深拷贝与浅拷贝 近来在研读underscore的 ...

  7. C#中的浅拷贝和深拷贝

    C#中有两种类型变量,一种是值类型变量,一种是引用类型变量.对于前者,copy是属于全盘复制:而对于后者,一般的copy只是浅copy,相当于只传递一个引用指针一样.因此对于后者进行真正copy的时候 ...

  8. python浅拷贝_Python中的浅拷贝和深拷贝

    本文翻译自copy in Python (Deep Copy and Shallow Copy),讲述了在Python语言中浅拷贝与深拷贝的不同用法.全文系作者原创,仅供学习参考使用,转载授权请私信联 ...

  9. clone是深拷贝还是浅拷贝_Python中的浅拷贝和深拷贝

    本文翻译自copy in Python (Deep Copy and Shallow Copy),讲述了在Python语言中浅拷贝与深拷贝的不同用法.全文系作者原创,仅供学习参考使用,转载授权请私信联 ...

  10. 浅拷贝 python_python中的浅拷贝和深拷贝

    http://python.jobbole.com/82294/ Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果. 下面本文就通过简单的例子介 ...

最新文章

  1. 微软10月起将向安全厂商提前告知安全补丁内容
  2. 指针作为函数的返回值
  3. 人工智能是利用电子计算机模拟人类智力,第一章 计算机系统.ppt
  4. 3.Programming in TensorFlow and Keras
  5. [深度学习-实践]GAN入门例子-利用Tensorflow Keras与数据集CIFAR10生成新图片
  6. solr java api_Solr7.4.0的API(Solrj)操作
  7. Eclipse用法和技巧九:自动添加try/catch块2
  8. web文件上传(二)--使用form还是ajax
  9. PAT (Basic Level) Practice1001 害死人不偿命的(3n+1)猜想
  10. 面向对象七大设计原则(转)
  11. 【手势识别】基于matlab GUI SIFT+SVM算法手势识别【含Matlab源码 1789期】
  12. ROS 设置环境变量
  13. 微信小程序上线,后台接口失效问题
  14. 人工智能 2 级就来越塔来杀我,论文已被NeurIPS收录!
  15. 怎么样去学习平面设计,学ps就是平面设计了吗?
  16. iOS10访问通讯录、相册等隐私权限设置
  17. c语言用指针升序降序,C语言函数序——升序降序.doc
  18. linux 移除、加载SATA盘
  19. 1 实验9_7_设计函数int getVowel(char str[],char vowel[]); (100分)
  20. GlusterFS——分布式复制卷

热门文章

  1. 小伙面试时被连环追问数据库优化, 面试前如何埋点反杀? 网友看完直呼: 太硬核了!
  2. win7如何设置通电自动开机_电脑如何设置自动开机,教您如何设置
  3. 百度一下,你就知道.2
  4. can的总结——笑笑
  5. Java如何解决模糊查询(数据库SQL语句,报表开发工具)
  6. 数组之concat注意事项-不更改原数组
  7. Java虚拟机——Parallel Scavenge收集器
  8. excel两行数据匹配【vlookup、countif】
  9. 微信小程序,仓库系统,可以扫描入库查询
  10. 谢烟客---------Linux之权限