system verilog virtual函数
时间:10-02
整理:3721RD
点击:
class a{
virtual function int add() ;
}
endclass
build_phase()
add();
endphase
。
class b extends a{}
fucntion int add();
endclass
build_phase()
super.build_phase();
endphase
b实例化时,在运行build_phase时,调用lb类的add函数。为什么b实例化时没有直接调用add函数,build_phase也会运行b类胡函数?
virtual function int add() ;
}
endclass
build_phase()
add();
endphase
。
class b extends a{}
fucntion int add();
endclass
build_phase()
super.build_phase();
endphase
b实例化时,在运行build_phase时,调用lb类的add函数。为什么b实例化时没有直接调用add函数,build_phase也会运行b类胡函数?
不是应该在b类对象里调用add时才会用b类的add函数吗
b类没有直接调用add函数,而是在运行super.build_phase时调用了add函数,为什么这时运行的是b类里的add,不是a类里的add?
因为a中的是virtual function, 所谓的重载特性。子类不会再调用父类的function了。