1. 类的概述
- 类是一种可以包含数据和方法(function, task)的类型
- 例如一个数据包,可能被定义为一个类,类中可以包含指令、地址、队列ID、时间和数据等成员
- 面向对象编程(OOP ,Object-Oriented Programming)使用户能够创建复杂的数据类型,并且将它们跟使用这些数据类型的程序紧密地结合在一起
- 用户可以在更加抽象的层次建立测试平台和系统级模型,通过调用函数来执行一个动作而不是简单地改变信号的电平
- 在验证环境中,包括stimulator,monitor,checker以及其它验证组件接下来都将按照OOP的方式来构建
2. OOP术语
- 类(class): 包含成员变量和成员方法
- 对象(object): 类在例化后的实例
- 句柄(handle): 指向对象的指针
- 原型(prototype): 程序的声明部分,包含程序名、返回类型和参数列表
3. 构建函数
- SV并不像C++语言一样要求复杂的存储空间开辟和销毁手段,而是采用了像JAVA一样空间自动开辟和回收的手段
- 因此SV的类在定义时,只需要定义构建函数(constructor),而不需要定义析构函数(destructor)
- 类在定义时,需要定义构建函数,如果未定义,则系统会自动帮助定义一个空的构建函数(没有形式参数,函数体为空)
- 对象在创建时,需要先声明再例化,同时进行即可
4. 静态成员(变量/方法)
- 类的成员(变量/方法)默认都是动态(automatic)生命周期,即每一个对象的变量和方法都会为其开辟新的空间
- 如果多个对象为了共享一个成员(变量/方法),那么可以为其添加关键字static
- 多个对象因此可以共享同一个成员变量或者方法
- 成员方法也可以声明为静态
- 静态方法无法访问动态成员(变量/方法),否则会发生编译错误
5. this
- this是用来明确索引当前所在对象的成员(变量/参数/方法)
- this只可以用来在类的非静态成员方法、约束和覆盖组中使用
- this的使用可以明确所指向变量的作用域