$cast使用,父类与子类句柄(handle)的关系

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了$cast使用,父类与子类句柄(handle)的关系相关的知识,希望对你有一定的参考价值。

?The handle of a child class can be assigned to a parent handle without any problem.
?Using $cast to assign the handle of a parent class to a child handle.
 

class Parent;

int m1 = 2;

endclass

 

class Child extends Parent;

int m2 = 5;

endclass

 

initial begin

Parent parent;

Child child1, child2 = new();

 

parent = child2;

child1 = parent;

$display("m2=%0d",child1.m2);

end

////////////////// simulation //////////////////

Error-[SV-ICA] Illegal class assignment

Expression ‘parent‘ on rhs is not a class or a compatible class and hence

  cannot be assigned to a class handle on lhs.

 

initial begin

Parent parent;

Child child1, child2 = new();

 

parent = child2;

$cast(child1 , parent);

$display("m2=%0d",child1.m2);

end

////////////////// simulation //////////////////

m2=5

以上是关于$cast使用,父类与子类句柄(handle)的关系的主要内容,如果未能解决你的问题,请参考以下文章

SV中父类与子类句柄转换,即子类的扩展类与父类句柄转换等问题

SV中父类与子类句柄转换,即子类的扩展类与父类句柄转换等问题

java中父类与子类的关系以及使用

使用static_cast进行父类指针转子类指针可能出现的问题

关于C++父类与子类之间变量的问题

JavaSE8基础 当父类与子类中的成员变量重名了,使用super.名字 来访问父类的成员变量