子类重写父类的虚函数后需要调用父类的虚函数
来源:互联网 发布:哈密顿算法求最短路径 编辑:程序博客网 时间:2024/06/05 17:14
D d对象调用add()函数时候,根据虚函数的定义,会调用到自己所重写的add()函数,如果想调用A类或者B类所重写的add()函数,用一个switch判断类型开关,实质调用A::add()或者B::add()。
#include<iostream>#include<vector>using namespace std;class BASE{public:virtual void add(){cout<<"BASE";};};class A:public BASE{public:virtual void add(){cout<<"A";};};class B:public BASE{public:virtual void add(){cout<<"B";};};class D:public A,B{#define SWITCH(X)\{\switch(this->d)\{\case 0:\A::X;\break;\case 1:\B::X;\break;\default:\this->X;\}\}\;public:D(){this->d=5;};virtual void add(){cout<<"D";};void print(){SWITCH(add())};private:int d;};int main(){D d;d.print();system("pause");return 0;}
当类存在继承关系时候,this指针永远指向真正实例化的对象地址
阅读全文
0 0
- 子类重写父类的虚函数后需要调用父类的虚函数
- 子类重写父类的构造函数
- 例题:子类重写父类方法后的调用规则
- 子类重写父类方法后的调用规则
- 【C++】子类在重写虚函数时,会覆盖父类的函数
- c++ 父类指针转换为子类指针后调用子类的成员函数问题
- java子类构造函数是否需要调用父类的构造函数
- Java 父类构造函数中调用子类重写的方法
- 子类继承父类的虚函数调用
- 子类调用父类的构造函数
- 子类调用父类的构造函数
- 重写函数之后,一定要检查是否需要调用父类的函数
- 关于子类重写父类私有虚函数
- JS实现子类调用父类的同名函数函数
- 虚函数与非虚函数在父类、子类之间的调用
- 解释虚函数的例子(父类子类指针函数调用注意事项)
- 子类重载父类的虚函数
- 子类重写父类的方法需要遵循以下规则:
- vue-resource
- ACM进阶之路(欢迎来看)
- QTreeView和QTreeWidget样式表的使用案例
- 监控面板
- 关于兼容ie8的圆角和select下拉列表-初稿
- 子类重写父类的虚函数后需要调用父类的虚函数
- 机器学习方法篇(9)------梯度提升决策树GBDT
- 线程和进程
- 指针知识
- Linux系统下nginx+tomcat搭建集群
- QTreeWidget样式设置大全(一)
- 什么是caffe?
- linux 安装dubbo+zookeeper
- Mysql Navicat Premium工具快捷操作