博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++,多继承造成的二义性及解决办法
阅读量:5955 次
发布时间:2019-06-19

本文共 721 字,大约阅读时间需要 2 分钟。

#include 
using namespace std;//-------------------------------class A1{public: int a;public: void m();};void A1::m() { cout<<"A1::m():a="<
a<

A1::m():a=34

A2::m(),a=32432
A1::a=34
A2::a=32432

*/

上面是两个基类有同样名称和形式的函数,都被继承到了子类中。访问他们的时候,要加上作用域才能正确地访问。

 

进一步来看,如果两个类都从同一个类派生,并没有重写某些函数,再有一个子类继承了它们两个。[共同基类产生的二义性]

情况就和上面类似了。代码如下:

#include 
using namespace std;#include
class A{public: int m_ax; void show(); A(); A(int a);};A::A(){}A::A(int val){ this->m_ax = val;}void A::show(){ cout << "A::m_ax = "<
<

专门解决共同基类产生的二义性的办法还有虚基派生

见另一篇:

  c++, 虚基派生 : 共同基类产生的二义性的解决办法

  http://www.cnblogs.com/mylinux/p/4096926.html

你可能感兴趣的文章
安装配置discuz
查看>>
CentOS7 64位小型操作系统的安装
查看>>
线程互互斥锁
查看>>
KVM虚拟机&openVSwitch杂记(1)
查看>>
win7下ActiveX注册错误0x80040200解决参考
查看>>
《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.1-正确认识软件架构...
查看>>
2013 Linux领域年终盘点
查看>>
linux学习之查看程序端口占用情况
查看>>
相逢在栀枝花开的季节
查看>>
linux下git自动补全命令
查看>>
Ubuntu14.04LTS更新源
查看>>
Linux报“Unknown HZ value! (288) Assume 100”错误
查看>>
mysql多实例实例化数据库
查看>>
我的友情链接
查看>>
golang xml和json的解析与生成
查看>>
javascript 操作DOM元素样式
查看>>
Android 内存管理 &Memory Leak & OOM 分析
查看>>
【查找算法】基于存储的查找算法(哈希查找)
查看>>
JavaWeb网上图书商城完整项目--day02-10.提交注册表单功能之页面实现
查看>>
记录一下这次web实训的两个网站
查看>>