【SystemVerilog基础】10.new()和new[]

本文探讨了C++中new操作符的作用,它用于动态分配内存并初始化数组或对象。new()可以创建对象,而new[]则用于初始化动态数组。文章通过示例代码展示了如何使用new创建对象,并解释了new后面是否加括号的区别。在类generator的build函数中,new用于实例化transaction对象并进行随机化处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

new[ ]

一般情况下new[ ]是用来开辟内存并且初始化的,主要用于设置动态数组大小。

new()

创建对象;transaction tr;  tr=new();                  transaction tr =new();  两种方法

创建对象开辟了新的内存空间,可以存放新的成员变量和方法,构建函数new()是系统预预定函数,不需要指定返回值,函数会隐式的返回例化后的对象指针,构建函数可以定义多个参数作为初始化时外部传入数值的手段。

但是疑惑的地方不在这,是使用new函数的时候后面加不加括号有什么不同的影响么?

class generator;
  int            tr_num;            //定义了要发送的激励的数量(不同的testcase发送的激励命令数量不一样)
  transaction    tr;                //产生对象tr(tr的产生由顶层testcase告知)
  mailbox        mbx=new();  
function generator::build();         
  tr = new;                          //对象tr实例化,分配空间
  if(!tr.randomize())begin           //随机化transaction中的数据
    $display("@%0t ERROR::generator::build randomize failed",$time);
  end
endfunction

暂且搁置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值