【6】class的简单梳理

1、结构体和类的关系(简单说明):

结构体:简单地将不同类型的几个数据放在一起,使得它们的集合体具有某种特定的意思(只包含结构体变量);与结构体相对应的是一些函数操作。对于这些函数,如果没有这些定义的结构体变量,它们就无法使用;对于结构体变量来说,如果没有这些函数,那么结构体也没有任何意义。

class:由于结构体和函数的关系如此紧密,所以面向对象的开创者们开创了class的概念;class将结构体和它相应的函数集合在一起,成为一种新的数据组织性质。 


2、类的三大特征:封装、继承、多态

封装:自己定义的class一般是全局可见的,所以class中的变量有可能导致全局变量导致的致命问题(UVM_p_355);所以在class中定义了私有变量这一类型,class中成员变量、函数/任务都可以定义为local类型;

继承:子类 extern 父类,父类中的变量、函数/任务在子类中都是可见的;

多态:子类向父类的转换可以由系统自动完成,父类向子类的转换需要使用cast转换符来完成(这里的转换需要自己手写函数,对于复杂的class,转换函数比较复杂,并且转换函数兼容性比较差);为自动实现父类向子类的转换,诞生了虚函数,只需要在定义函数的时候在前面加上virtual即可;


3、cast转换符

常使用方式:if(cast(目的,源)),如果源头可以转换成目的端,实现转换,并且返回值为1,否则转换报错,并返回0;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值