一、构造函数new()与new[]
1.new
sv中创建一个类,用类声明一个句柄,利用句柄来例化一个对象(这个过程好比于你自己构想了一个勺子,勺子叫啥就叫句柄,但是构想的勺子不能在现实生活中使用,需要将其创建出来,也就是构造出来)。而这个例化的的方法就是调用new()函数,new函数本省存在于自己定义的类当中,默认情况下系统会在定义的类中默认创建一个new()函数,也可由我们自己定义。
注意:1, 在使用new()函数创建对象过程中,除了会为类中各个对象分配内存之外,还会将变量设置为默认数值
2, new函数由于是构造函数,其本身不能有返回值,而是返回一个指向类对象的句柄,其类型就是类本身。代码如下
class example1;//创建一个类
logic[3:0] addr;
logic[8:0] data;
function new;
addr = 8;
data = 1;
endfunction
endclass
example1 ex; //声明一个句柄
ex = new(); //将句柄实例化
2.new[ ]
一般new [ ]也是用来开辟内存并初始化,但是它主要用于设置动态数组的大小
与new()不同点:
1, 调用new函数是用于将对象实例化,而new[ ]则是创建了一个含有多个元素的数组
2, new()函数可以利用参数来改变对象中变量的值,而new[ ]的参数仅仅被用作设置动态数组的大小。