System Verilog视频学习笔记(9)- Inheritance
2017-05-13 20:05
246 查看
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++真的很重要。
内容来自启芯-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++真的很重要。
相关文章推荐
- System Verilog视频学习笔记(7)- OOP-Virtual Interface
- System Verilog视频学习笔记(4)- Stimulus driven and received
- System Verilog视频学习笔记(5)- Concurrency
- System Verilog视频学习笔记(2)- Testbench
- System Verilog视频学习笔记(8)- Randomization
- System Verilog视频学习笔记(3)- Language Basic
- System Verilog视频学习笔记(6)- OOP-Encapsulation
- System Verilog视频学习笔记(10)- Inter-Thread Communication
- System Verilog视频学习笔记(11)- Functional converage
- System Verilog视频学习笔记(12)- VMM预览
- System Verilog视频学习笔记(1)- Device Under Test
- Mars Android视频学习笔记——01_18_文件下载
- “黑马程序员”视频学习笔记之c#基础
- Mars Android视频学习笔记——01_20_XML文件解析
- 【opencv学习笔记3】视频播放控制
- Spring视频学习笔记(3)Bean的作用域及自动装配
- 黑马视频学习笔记-函数
- MPEG4 & H.264学习笔记之二 ------ 视频编码基本概念及时域模型
- 《IT播吧.-.大灰狼老师出品的零基础汇编视频课程》学习笔记
- 学习笔记之深入浅出MFC 第8章 C++重要性质----基类与派生类:谈继承(Inheritance)