码迷,mamicode.com
首页 > 编程语言 > 详细

C++ 虚函数的说明

时间:2019-12-01 16:37:18      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:覆盖   对象   虚函数   派生类   rtu   同名   c++   就是   地址   

虚函数的几点说明

 

1. 当一个成员函数定义为虚函数时,其派生类中的同名函数也自动为虚函数。无论其是否添加了 virtual 关键字。

为了能良好的阅读代码,请加上。

 

2. 父类的虚函数,就是为了让子类中的同名成员函数覆盖。这样,父类对象的指针就可以指向子类对象,并调用子类的同名函数。

 

3. 纯虚函数。用于定义接口。父类中可能不能(或者无意义)定义该函数的实现。

 

 

虚指针 vptr 和虚表 vptl

每个父类或者子类对象中都有一个虚指针,其指向一个虚表。

1. 所以,对象列表中只会增加一个虚指针。

2. 虚表中存储的是函数地址。

3. 子类继承的是函数的调用权。

4. 子类的虚表中,没被覆盖的函数会填上父类函数的地址,被覆盖的函数会填上子类中函数的地址。

 

C++ 虚函数的说明

标签:覆盖   对象   虚函数   派生类   rtu   同名   c++   就是   地址   

原文地址:https://www.cnblogs.com/alexYuin/p/11966263.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!