Глядя на базовые классы uvm, я заметил, что метод uvm_sequence_item get_type_name не определен как виртуальный. Это означает, что если у меня есть производный класс, который понижен до дескриптора uvm_sequence_item, то вызов get_type_name для этого дескриптора вернет неправильное значение?
get_type_name
это virtual
в 1.2. Вот выдержка из исходного кода uvm_object
:
virtual function string get_type_name (); return "<unknown>"; endfunction
get_type_name
не переопределяется в uvm_sequence_item
. (Так откуда вы берете информацию?) Даже если бы это было так, вам не нужно помечать метод как virtual
, если метод базового класса — virtual
.
Это именно то, что я говорю.
Я согласен, что get_type_name является виртуальным в uvm_object, я говорил о методе uvm_sequence_item, который не является виртуальным. Я вижу, что в UVM 1.1d ``` function string get_type_name(); вернуть "uvm_sequence_item"; endfunction ``` Итак, вы говорите, что, поскольку метод базового класса является виртуальным, не имеет значения, если он переопределен как не виртуальный в производных классах?