C++学习(4)——继承中的二义性问题和虚基类
来源:互联网 发布:matlab矩阵qr分解 编辑:程序博客网 时间:2024/06/13 04:57
#include<iostream>#include<stdio.h>using namespace std;/************************************************************************* 二义性问题************************************************************************///基类class CBase{ int a;public: int x; void func();};//派生类1class CDerive1:public CBase //可以添加virtual虚基类{ int b;public: int y; void func1();};//派生类2class CDerive2:public CBase//可以添加virtual虚基类{ int c;public: int z; void func2();};//子派生类class CDerive12:CDerive1,CDerive2{ int d;public: int yz; int func12() { //x=10; //error C2385: 'CDerived12::x' is ambiguous //func(); //error C2385: 'CDerived12::func' is ambiguous CDerive1::x=10; CDerive1::func(); return 0; }};int main(){ CDerive12 obj; return 0;}
解决二义性问题的方法:
1.利用范围运算符指明所要调用的成员的类属范围;
2.在派生类中重新定义一个与基类中同名的成员,使该成员隐蔽基类的同名成员;
3.将公共基类说明为虚基类,避免在派生类中保留多个基类的备份,而只保存一个实例。
- C++学习(4)——继承中的二义性问题和虚基类
- C++学习笔记(8)——继承中的二义性问题和虚基类
- C++学习笔记(9)——使用范围运算符解决继承中的二义性问题
- C++:多继承中的二义性问题
- Java学习笔记——异常中的继承问题
- Java中继承时的问题——子类和父类在(或不在)同一个包中的继承
- C++primer学习:面象对象程序设计(4):继承类中的作用域和拷贝控制
- C++中的公有继承(public)问题
- C/C++——继承和派生
- c#学习5——C#中的继承(inherit)
- 【C++】继承和多态之——菱形继承
- c++——继承类中的子对象和基类对象的初始化
- C中的继承和多态
- C#中的接口和继承多态
- Objective-C中的继承和重载
- C中的继承和多态
- C中的继承和多态
- C中的继承和多态
- 利用BADI ME_PROCESS_PO_CUST進行PO check
- WPF 调用API修改窗体风格实现真正的无边框窗体
- html 限制只能是数字输入
- 大师来自巧匠
- IOS调试技巧:当程序崩溃的时候怎么办 iphone IOS
- C++学习(4)——继承中的二义性问题和虚基类
- Arduino Duemilanove简介
- 微软发布Visual Studio 2012 示例代码浏览器
- 多线程
- scp命令
- BADI 修改采购订单的shipping point示例
- 金山员工猝死:莫让青春负重前行
- oracle日期转换及时间差
- 告诉Xcode在编译时对单个文件开启ARC功能