System Verilog视频学习笔记(9)- Inheritance

来源:互联网 发布:js dom编程艺术 pdf 编辑:程序博客网 时间:2024/05/29 03:37

OOP-Inheritance(面向对象-继承)

内容来自启芯-System Verilog视频

============================================================== 

目录结构:

1、继承

2、多态

3、数据保护

4、总结

 ==============================================================

本章目标:

了解面向对象派生

 

Inheritance继承:子类从父类继承,子类又可以定义新的成员和方法。

1、继承

图1、继承结构

以上父类packet,子类继承父类packet,生成mypacket,子类可以定义自己的属性。

派生的类即子类可以兼容父类。

 

2、多态

图2、函数调用例子

p1.crc = computer_crc();//调用父类computer_crc()函数

p2.crc = computer_crc();//调用子类computer_crc()函数

p1.crc = crc(p1);//调用父类computer_crc()函数

p2.crc = crc(p2);//调用父类computer_crc()函数

以上红色部分为什么调用父类内?因为子类句柄传递给父类,但是packet对象pkt仍是父类对象,他调用的仍是父类的函数。

需要通过Virtual声明。

所以多态需要通过将原函数声明virtual,则新定义的函数可覆盖原有函数。

图3、声明Virtual实现多态

 

3、数据保护

关键字Local

图4、Local例子(子类不能使用父类的变量)

关键字Protected

图5、Protected例子,子类可访问父类变量

另外:子类继承实现新函数时补全方法的参数,在VCS编译中子类继承父类,子类没有父类对应的函数,则VCS将生成对应的函数但没有参数,所以编译时将会发生错误。

 

4、总结

本节介绍了类的继承,继承时方法和成员继承,成员属性local和protected。掌握C++真的很重要。

0 0
原创粉丝点击