C++多重继承时调用相应的父类函数
C++中没有super或parent关键字,想要调父类方法,只能使用明确的[父类名称::方法名]
假如要求A和B是C的父类的前提下,要使如下代码能够分别输出A和B的相关信息(虽然这个要求很少遇到....,但是面试官就是这么变态)
int main(int argc, char* argv[])
{C c;A* pA = &c;B* pB = &c;pA->foo(); //这里会输出和A相关的信息pB->foo(); //这里会输出和B相关的信息return 0;
}
怎么办?
// test.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
#include <iostream>using namespace std;class A
{
public:virtual void foo() {cout<<"A::foo()"<<endl;}
protected:
private:
};class B
{
public:virtual void foo() {cout<<"B::foo()"<<endl;}
protected:
private:
};class MidA:public A
{
public:virtual void fooCA() {};virtual void foo(){A::foo();}
protected:
private:
};class MidB:public B
{
public:virtual void fooCB() {};virtual void foo(){B::foo();}
protected:
private:
};class C:public MidA, public MidB
{};
int main(int argc, char* argv[])
{printf("Hello World!\n");C c;A* pA = &c;B* pB = &c;pA->foo(); //这里会输出和A相关的信息pB->foo(); //这里会输出和B相关的信息return 0;
}
转载于:https://www.cnblogs.com/yangyh/p/3373252.html
C++多重继承时调用相应的父类函数相关推荐
- c语言 调用父类方法,关于C++:如何从派生类函数调用父类函数?
如何调用C++派生类中的父函数?例如,我有一个名为parent的类,还有一个名为child的类,它是从父类派生的.内每个类都有一个print函数.在定义孩子的打印函数时,我想调用家长的打印函数.我该怎 ...
- python子类如何调用父类方法_python中子类调用父类函数的方法示例
前言 本文主要给大家介绍了关于python子类调用父类函数的相关内容,Python中子类中的__init__()函数会覆盖父类的函数,一些情况往往需要在子类里调用父类函数.下面话不多说了,来一起看看详 ...
- 【Groovy】集合遍历 ( 集合中有集合元素时调用 flatten 函数拉平集合元素 | 代码示例 )
文章目录 一.集合中有集合元素时调用 flatten 函数拉平集合元素 二.完整代码示例 一.集合中有集合元素时调用 flatten 函数拉平集合元素 在上一篇博客 [Groovy]集合遍历 ( 操作 ...
- 子类super调用父类函数,该函数中调用的函数是父类还子类呢
如图所示: 子类对象通过super()函数调用父类的run函数,然后直接调用了子类的demo函数,而没有调用父类的函数:猜想通过super调用父类,但self仍然代表是子类本身: 再看一例: 从这里说 ...
- 调用未绑定的父类方法和使用supper 函数 之间的选择.
class New_int(int): # 定义一个新的类 继承 int 类def __add__(self,other): # 重写 + 运算符 # __add__ 就是 int 中 + 的行为re ...
- Python多重继承时属性的调用顺序
使用多重继承时,属性的解析会变得非常复杂,因为可以使用很多搜索路径来绑定属性.在查找使用了多重继承的属性时,会将所有基类按从"最特殊"的类型到"最不特殊"的类这 ...
- gdb调试时调用函数、设置观察点以及GDB的宏
Table of Contents 调试时调用函数 观察点 GDB宏 调试是一项复杂的任务.开发人员大部分时间都花在调试上,因此熟悉许多调试工具很重要 在Linux中,本机调试器是GDB,它是基于命令 ...
- C++(6)——子类调用父类函数实现
C++(6)--子类调用父类函数实现 在C++中子类对象调用父类函数可通过域操作符(::)来实现,表明所调用函数的作用域. #include<iostream>using namespac ...
- 单相逆变器S函数仿真,控制算法采用 S函数编写,在模型运行时调用S函数。 逆变器输出电压品质非常高
单相逆变器S函数仿真,控制算法采用 S函数编写,在模型运行时调用S函数. 逆变器输出电压品质非常高! ID:1765668638115213幸福生活
最新文章
- 【18】让接口容易被正确使用,不易被误用
- python运行空白_执行时空白tkinter窗口
- 【boost】time.1 同步计数器
- DeFi衍生品协议dFuture未来5日将通过公测奖励100万枚DFT
- spring+hibernate:在applicationCOntext.XML中配置C3P0参数说明
- 猿辅导(实习800/天)面试算法题详解
- 剔除水印软件Inpaint 7.2 中文破解版 微笑一刀作品
- MATLAB画qpsk的矢量图,matlab仿真QPSK.doc
- 【数据分析】销售案例分析——分解目标
- 布隆过滤器学习笔记——《Learned Bloom Filters in Adversarial Environments:A Malicious URL Detection Use-Case》
- AMD显卡性能测试软件,谁更适合Win7?AMD与NVIDIA显卡性能对比
- 2016年计算机视觉机器学习领域国内重要会议 汇总 (持续更新)
- 悲痛!长安福特AE工程师之死:985高校吉大毕业,入职8年,年仅30岁抑郁跳楼身亡...
- Niagara N4 与物联网的学习经验分享(一 New Station)
- Windows服务优化(整理篇)
- 10-93 spj-查找在同一个城市的所有工程项目
- 一个神奇的分布式计算框架:jini
- css解决 多张图片如何统一大小 且没拉伸问题
- 【单片机】唯一设备ID UID固件加密
- 1--if中的return的作用/条件判断中如何退出函数
热门文章
- rpc wmi 服务不可用_在Windows上修复“RPC服务器不可用”的方法
- linux ipc shmget 例子,Linux IPC之共享内存C 事例(示例代码)
- 修改docx表格_实例29_在Word表格中将上下行相同内容的单元格自动合并
- 编译ffmpeg出现 librtmp not found using pkg-config
- vjudge-Knight Moves(bfs)
- linux下无权限安装anaconda和tensorflow-gpu
- 转:卷积神经网络_(1)卷积层和池化层学习
- 百面机器学习 #2 模型评估:03 余弦距离和余弦相似度、欧氏距离
- The constructor someMethod() is not accessible due to restriction on required library
- Python自动化运维开发----基础(十二)函数