您能让我知道为什么我们必须在systemverilog中两次输入“ new”关键字吗?
class MyClass;
int number;
function new();
number = 0;
endfunction
endclass
module test;
MyClass test1 = new();
endmodule
如您所见,其中使用了两次“ new”关键字。
您能告诉我为什么我们需要两次使用吗?
答案 0 :(得分:1)
function new();
number = 0;
endfunction
提供函数new()
的实现。当我们打电话时:
MyClass test1 = new();
我们正在创建test1
。为了创建它,我们调用函数new()
,我们在上面定义了它的实现。当我们调用new()
时,将确保number
的属性test1
初始化为0(因为这是new()
内部发生的事情)。
我希望我的解释清楚。