类型向下转换$cast
时间:10-02
整理:3721RD
点击:
classA;..........
virtual functionvoid display();
.....
endfunction
.......
endclass
classBextendsA;
..........
virtual functionvoid display();
.....
endfunction
.......
endcalss
Aa;
Bb1,b2;
initial begin
b1 = new();
a= b1;//将子类句柄赋给父类句柄
$cast(b2 , a);
b2.display;//结尾为:调用子类的display函数
end
我就觉得把,类型向下转换了半天,这不是跟copy一个子类一样吗,那么$cast 的意义是什么,多态?
virtual functionvoid display();
.....
endfunction
.......
endclass
classBextendsA;
..........
virtual functionvoid display();
.....
endfunction
.......
endcalss
Aa;
Bb1,b2;
initial begin
b1 = new();
a= b1;//将子类句柄赋给父类句柄
$cast(b2 , a);
b2.display;//结尾为:调用子类的display函数
end
我就觉得把,类型向下转换了半天,这不是跟copy一个子类一样吗,那么$cast 的意义是什么,多态?
What is this ? Do you want help ?
copy 是复制,仿真器会看到两个独立的object,copy之后,你修改其中一个的member的值不会影响另一个object的member
$cast使得父类句柄和子类句柄都指向同一个object