38 lines
1.5 KiB
Markdown
38 lines
1.5 KiB
Markdown
# 基类和扩展类关系研究
|
||
|
||
验证问题:基类和扩展类之间变量、函数、重载、虚拟方法等之间的关系是怎样的,要如何理解。
|
||
|
||
结论:类由变量和函数组成,扩展类可以理解在基类的基础上增加了一个类。但是有几点需要注意:
|
||
|
||
* 基类和扩展类的**变量空间彼此独立**,即使同名。
|
||
* 基类和扩展类的**函数空间彼此独立**,即使同名。
|
||
* 基类函数只能访问基类变量,扩展类函数只能访问扩展类变量。
|
||
* **基类访问扩展类变量的唯一方法就是使用重载后的函数(虚拟方法)。**
|
||
* **virtual声明的函数,会覆盖父类中的同名函数。**。
|
||
|
||
## 快速开始
|
||
|
||
```bash
|
||
make all
|
||
```
|
||
|
||
### 输入结果
|
||
```text
|
||
Chronologic VCS simulator copyright 1991-2018
|
||
Contains Synopsys proprietary information.
|
||
Compiler version O-2018.09-SP2_Full64; Runtime version O-2018.09-SP2_Full64; Mar 19 16:29 2025
|
||
//******************** P1.print ********************
|
||
[tb.\BasePacket::printA ] A is 1
|
||
[tb.\My_Packet::printB ] B is 5
|
||
[tb.\BasePacket::printC ] C is 3
|
||
//**************************************************
|
||
//******************** P2.print ********************
|
||
[tb.\BasePacket::printA ] A is 1
|
||
[tb.\My_Packet::printB ] B is 5
|
||
[tb.\My_Packet::printC ] C is 6
|
||
//**************************************************
|
||
V C S S i m u l a t i o n R e p o r t
|
||
Time: 0 ps
|
||
CPU Time: 0.130 seconds; Data structure size: 0.0Mb
|
||
Wed Mar 19 16:29:22 2025
|
||
``` |