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

理解 C++ 中继承层次的关键在于理解如何确定函数调用

时间:2020-03-06 19:28:12      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:对象   引用   nbsp   编译器   代码   类型检查   虚函数   span   中继   

摘抄自《C++ Primer中文版(第4版)》


 

关键概念:名字查找与继承

理解 C++ 中继承层次的关键在于理解如何确定函数调用。

确定函数调用遵循以下四个步骤:

(1) 首先确定进行函数调用的对象、引用或指针的静态类型。

(2)在该类中查找函数,如果找不到,就在直接基类中查找,如此循着类的继承链往上找,直到找到该函数或者查找完最后一个类。如果不能在类或其相关基类中找到该名字,则调用是错误的。

(3)一旦找到了该名字,就进行常规类型检查,查看如果给定找到的定义,该函数调用是否合法。

(4)假定函数调用合法,编译器就生成代码。如果函数是虚函数且通过引用或指针调用,则编译器生成代码以确定根据对象的动态类型运行哪个函数版本,否则,编译器生成代码直接调用函数。

 

理解 C++ 中继承层次的关键在于理解如何确定函数调用

标签:对象   引用   nbsp   编译器   代码   类型检查   虚函数   span   中继   

原文地址:https://www.cnblogs.com/lihuanyu/p/12430196.html

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