【SystemVerilog基础】多态和$cast动态类型转换继续深入(虚函数/虚任务理解)(virtual)

本文介绍了SystemVerilog中的多态概念,包括虚函数的作用和应用场景,并通过代码实例展示了如何使用。同时,详细讨论了$cast动态类型转换,包括向上和向下转换的正确做法及常见错误分析。

速记:

  • 虚函数/虚任务理解:被virtual修饰的类成员函数称为虚函数。虚函数是动态绑定的。在不改变基类的前提下,如果子类需要修改基类的行为(即重写与基类函数同名的函数),就应该在基类中将相应的函数声明为虚函数。虚函数是多态的一种重要实现方式。
  • 父类的指针可以指向子类的对象
    • 父类的指针在指向子类对象时,可以动态索引到子类重写的子类方法。
  • 子类的指针不可以直接指向父类的对象

定义一个基类的句柄,如果是单态的话,句柄的类型就决定了对象的类型比方说句柄的类型是类A,那么不管这个句柄指向什么类型的对象,它都是调用A里面的方法
多态是说一个类的指针,可以根据指向的对象的类型,显示出该对象对应的特性,也就是调用对象所对应的类型里面的方法比方说句柄的类型是类A,该句柄指向的对象类型是类B,则会调用B里面的方法。

  • 1、多态的实现方式虚函数(virtual):被virtual修饰的类成员函数称为虚函数
  • 2、基类中某一成员函数声明为virtual虚函数后,派生类中的同名函数(同名、同参、同类型)自动生成虚函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReCclay

如果觉得不错,不妨请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值