SV精通3-②类的成员

概述
  • 类是成员变量和成员方法的载体。
  • 一个类的功能应该尽可能的简单,不应该承担不符合它的职责。这在设计模式中为单一职责原则。(SPR:Single Responsibility Principle)
  • 类作为载体,将其属性和方法封装在内部,不会直接将成员变量暴露在外部。通过protected和local关键词来设置成员变量和方法的外部权限。封装属性在设计模式中为开放封闭原则(OCP:Open Closed Principle)
*使用了local和protected修饰的成员变量和方法,从外部的句柄是没办法访问class clock里的成员变量。
答案:选D,nclock被local修饰,因此nclock无法由外部的句柄访问得到数据。
  • 如果没有指明访问类型为local或protected等类型,那么则默认为public类型(public在SV中不为关键词,而protected和local为关键词),使用public修饰,子类和外部均可以访问类内部的成员变量。

定义成员方法
先创建对象,再调用类的成员方法。

类的封装
  • 类的内存空间需要构建对象才会开辟,struct则是在变量声明时就已经开辟了;
  • 类可以声明变量和方法,struct只能声明变量;
  • 从例化来看,模块module必须在仿真一开始就确定是否被例化。而类class的变量在仿真的任何时候都可以创建新的对象。即在硬件世界,硬件部分必须在仿真一开始就确定,即模块module中内部的过程块、变量都是静态的。
  • 从封装性来说,模块module内部的方法和变量都是对外开放的。类则需要通过protected、local、public等修饰来确定外部访问的权限能否访问类内部的成员变量和方法。
  • 模块module没有继承。类有继承。类可以通过继承完成功能的拓展。
答案:A。B选型则是在问静态句柄可不可以在编译的时候就生成对象,即在还没运行仿真,仿真一开始的时候就有一些静态的对象存在?可以。

类的迷思
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值