SystemVerilog 面向对象编程:class Transaction 实例化
在 SystemVerilog 中,我们可以使用 class 来进行面向对象编程。例如:
class Transaction;
int count = 0;
int id;
function new();
id = count++;
endfunction
endclass
Transaction b1, b2;
initial begin
b1 = new();
b2 = new();
end
那么 b2.id 为 1。
解释:
Transaction类定义了一个名为count的静态变量,用于跟踪创建的 Transaction 对象的数量。new()函数是 Transaction 类的构造函数,用于初始化新的 Transaction 对象。- 在构造函数中,
id属性被赋值为count的值,然后count自增。 - 当创建第一个 Transaction 对象
b1时,count为 0,所以b1.id为 0。 - 当创建第二个 Transaction 对象
b2时,count为 1,所以b2.id为 1。
因此,b2.id 的值为 1。
原文地址: https://www.cveoy.top/t/topic/mNzh 著作权归作者所有。请勿转载和采集!