类的三要素:封装、继承以及多态
一、句柄 的传递
在第一步中指明了t2,t1这两个悬空句柄,即这两个句柄没有指向任何对象;
在第二步中实例化了对象,并使用new函数为t1分配了内存,并将句柄赋给了t1,即此时的t1第一次指向了激励数据对象Transaction;
第三步为将t1赋给了t2,此时的t1和t2都指向了激励数据对象Transaction;
第四步再次使用了new函数为t1分配了空间,并指向了另外一个Transaction。
二、句柄的使用
下面悬空的指针只所以很危险的原因是因为悬空的指针不指向任何对象,有可能会被“系统回收”,这是由SV中的内存自动销毁机制所决定的。
三、访问类型之public、protected以及local。
四、定义类的成员
上述代码的意思是分别创建了两个对象,并分别使用了句柄t和pc指向了对象Transaction和PCI_ Tran,最后通过new函数将对象实例化,再分别在initial模块中调用了Transaction和PCI_ Tran的对象中的display()方法。
要注意的是如果在类中没有使用到new函数的话,那么SV会在程序中自动地创建一个空的new函数:function new();