多继承中的三角问题(虚继承来解决)
来源:互联网 发布:ubuntu 官方壁纸 编辑:程序博客网 时间:2024/06/02 04:59
多继承中的三角问题(虚继承来解决)
#include "stdafx.h"#include <iostream>using namespace std;#if 0虚继承(virtual)的意义在多继承中,保存共同基类的多份同名成员,虽然有时是必要的,可以在不同的数据成员中分别存放不同的数据,但在大多数情况下,是我们不希望出现的。因为保留多份数据成员的拷贝,不仅占有较多的存储空间,还增加了访问的困难。为此,c++提供了,虚基类和虚继承机制,实现了在多继承中只保留一份共同成员。虚基类,需要设计和抽象,虚继承,是一种继承的扩展虚继承语法:class 派生类名:virtual 继承方式 基类多个父类中有同名的成员,被继承到子类当中去后,会给访问带来很大的不方便,浪费空间需要解决多继承当中,同名成员被继承后引起的访问混乱目标:使z中只有一个data setData和getData操作的是同一个data提取公因式#endifclass M{public:M(int i) :data(i){}int data;};class X:virtual public M{public:X(int i):M(i){}void setData(int i){data = i;}};class Y:virtual public M{public:Y(int i) :M(i){}int getData(){return data;}};class Z :public X, public Y{public:Z():X(2),Y(3),M(100){}//这时只与M有关系 和前面的X Y都没关系void dis(){//cout << X::data << endl;//cout << Y::data << endl;cout << data << endl;}};int _tmain(int argc, _TCHAR* argv[]){Z z;z.dis();z.setData(100000);cout << z.getData() << endl;z.dis();return 0;}
阅读全文
0 0
- 多继承中的三角问题(虚继承来解决)
- 解决多继承三角问题实例(SofaBed)
- 多继承原理抛砖 - 虚继承的应用场景 - 虚继承能解决的问题有限
- 菱形继承中的虚继承
- DB4O中的继承问题
- 继承中的private问题
- 继承中的多线程问题。
- C++中的继承问题
- 继承中的初始化问题
- 继承中的一些问题
- 继承中的问题2
- C++中的继承问题
- C++中的继承问题
- java02_java继承中的问题
- 多继承 虚继承
- 继承(单继承、多继承、菱形继承、虚继承)
- 巧用原型继承解决游戏开发中的鼠标问题
- 多继承中的虚函数
- Ansible 基础入门-Playbook
- 微信小程序web-view的简单思考和实践
- js 判断对象是否为空字符串
- ubuntu apt-get
- 培训营的第三天
- 多继承中的三角问题(虚继承来解决)
- java就业前景很好:四大就业方向可供选择
- C# 代码结构自动化生成文档工具开发
- Android使用正则表达式获取字符串
- Linux 命令提示符显示当前完整路径
- 10-天亮大数据系列教程之virtualbox_nat模式下客户端链接主机端
- 全分布式Hadoop安装以及环境配置
- 把内表 itab1 的 n1 到 n2 行内容附加到 itab2 内表中去.
- T2T Transformer 笔记