再谈类成员虚函数

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

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

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

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

如下图所示

类成员

相关文章
|
4月前
|
C++
面试题:基类的析构函数为何要声明为虚函数?
面试题:基类的析构函数为何要声明为虚函数?
15 0
|
3月前
|
编译器 C语言 C++
C++类和对象的细节原理:this指针、构造函数和析构函数、深浅拷贝、运算符重载、初始化列表、类的各种成员和方法
C++类和对象的细节原理:this指针、构造函数和析构函数、深浅拷贝、运算符重载、初始化列表、类的各种成员和方法
38 0
|
4月前
|
NoSQL 编译器 程序员
『 C++类与对象 』虚函数与多态
『 C++类与对象 』虚函数与多态
|
4月前
|
存储 C++
第十一章 C++成员函数与静态成员详解
第十一章 C++成员函数与静态成员详解
23 0
|
10月前
|
存储 编译器 C++
<c++>虚函数与多态 | 虚函数与纯虚函数 | 多态的实现原理 | 虚析构函数
<c++>虚函数与多态 | 虚函数与纯虚函数 | 多态的实现原理 | 虚析构函数
100 0
|
7月前
|
存储 编译器 C语言
C++:类和对象(上)---初步认识类和this指针
C++:类和对象(上)---初步认识类和this指针
|
11月前
类与对象中this指针的使用
类与对象中this指针的使用
41 0
|
11月前
类与对象:静态成员
类与对象:静态成员
58 0
|
编译器 C++
C++类和对象终章——友元函数 | 友元类 | 内部类 | 匿名对象 | 关于拷贝对象时一些编译器优化
C++类和对象终章——友元函数 | 友元类 | 内部类 | 匿名对象 | 关于拷贝对象时一些编译器优化
87 0
|
安全 编译器 C语言
【七、多态】动/静态联编、虚析构函数、虚函数(虚函数表与VPTR指针)、重写与重定义
【七、多态】动/静态联编、虚析构函数、虚函数(虚函数表与VPTR指针)、重写与重定义
172 0
【七、多态】动/静态联编、虚析构函数、虚函数(虚函数表与VPTR指针)、重写与重定义