是否可以通过在systemverilog中使用$ cast从基类访问派生类的方法?

时间:2015-09-18 06:21:23

标签: casting system-verilog

我试图掌握SystemVerilog中的强制转换概念,并且一直在修改以下代码:

DELETE /rest/:id

我有一个基类'数据包'和一个派生类' bad_packet'。通过使用$ cast,我能够访问bad_packet的方法print2吗?还有其他方法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

是的,使用$ cast是访问基类中不存在的所有方法的典型方法。想一想 - 如果你知道你想要调用只存在于扩展类中的东西,你需要知道那个扩展类的类型,这样你就可以总是声明一个类型的类变量并且$ cast转换为它

还有一种在扩展类中调用非虚方法的间接方法,但它仍然涉及在基类中调用虚方法。您调用一个可以进入扩展类的虚方法,该方法可以调用扩展类对象中的任何内容。这就是clone()/ copy()方法在许多方法中的作用。