← 2022 · 海思 笔试

推荐答案 测试一下

如果该 class会被继承,则该 class所有定义的 function/task 都需要加 virtual()

A.正确 B.错误
单选题 中等 笔试真题单选

参考答案

B.错误。理由:在 SystemVerilog 或类似 OOP 语言中,只有当基类中的函数或任务期望被子类重写以实现多态行为时,才需要加 virtual 关键字。并非所有定义都需要加 virtual。例如,构造函数、私有函数、或设计中不希望被子类修改的公共函数都不应加 virtual。加 virtual 会引入额外开销(vtable 查找),且不必要地允许子类覆盖,可能破坏封装。因此,只有需要动态绑定的成员才应声明为 virtual,所有定义都加 virtual 是错误的。

涉及知识点

  • virtual 关键字的作用
  • 多态与动态绑定
  • SystemVerilog OOP 继承规则
  • 覆盖与隐藏的区别
  • 封装性与设计原则
← 上一题
登录后反馈错题
下一题 →