再谈类成员虚函数

简介: 以前经常学习虑函数 最多的是当基类指针构造子类对象时,调用函数的应用,但是以前没这一点:子类对象调用基类成员函数A,然后基类成员函数又会调用一个类成员函数B,这个类成员函数B在子类中也定义,基类中也定义(基类和子类同时拥有)。

以前经常学习虑函数 最多的是当基类指针构造子类对象时,调用函数的应用,但是以前没这一点:

子类对象调用基类成员函数A,然后基类成员函数又会调用一个类成员函数B,这个类成员函数B在子类中也定义,基类中也定义(基类和子类同时拥有)。此时成员函数A内部是调用基类的成员函数B还是子类的成员函数B呢。

答案是:当基类的这个成员函数声明为virtual时,不管怎样,只有子类有此函数,优先调用子类的。否则,调用基类的

如下图所示

类成员

相关文章
|
6月前
|
C++
面试题:基类的析构函数为何要声明为虚函数?
面试题:基类的析构函数为何要声明为虚函数?
38 0
|
5月前
类与对象\this指针
类与对象\this指针
33 0
|
6月前
|
数据安全/隐私保护 C++
C++中的虚函数、纯虚函数与函数重写的技术性探讨
C++中的虚函数、纯虚函数与函数重写的技术性探讨
89 0
|
6月前
|
C++
C++|多态性与虚函数(2)|虚析构函数|重载函数|纯虚函数|抽象类
C++|多态性与虚函数(2)|虚析构函数|重载函数|纯虚函数|抽象类
|
6月前
|
编译器 C语言 C++
C++类和对象的细节原理:this指针、构造函数和析构函数、深浅拷贝、运算符重载、初始化列表、类的各种成员和方法
C++类和对象的细节原理:this指针、构造函数和析构函数、深浅拷贝、运算符重载、初始化列表、类的各种成员和方法
63 0
|
存储 编译器 C++
<c++>虚函数与多态 | 虚函数与纯虚函数 | 多态的实现原理 | 虚析构函数
<c++>虚函数与多态 | 虚函数与纯虚函数 | 多态的实现原理 | 虚析构函数
137 0
|
6月前
|
存储 C++
第十一章 C++成员函数与静态成员详解
第十一章 C++成员函数与静态成员详解
41 0
|
存储 编译器 C语言
C++:类和对象(上)---初步认识类和this指针
C++:类和对象(上)---初步认识类和this指针
类与对象中this指针的使用
类与对象中this指针的使用
57 0
|
C++
类和对象中类对象作为类成员
类和对象中类对象作为类成员
62 0