标题:新手请教一个多重公用继承的访问问题
只看楼主
LBY_CHINA
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-7-9
结帖率:0
已结贴  问题点数:10 回复次数:1 
新手请教一个多重公用继承的访问问题
新手求解一个多重继承的访问问题
#include"iostream.h"
class base{
public:
    int lby;
};

class base1:public base{};
class base2:public base{};
class b12:public base1,public base2{};
class b22:public base1,public base2{};
class kk:public b12,public b22{};
//*******************************************************
main()
{
kk bbb;
}
我想通过对象bbb修改bbb.b22.base2.base.lby=1999;怎样写表达式?
     我想说的意思的是对于多重公有继承,怎样访问任意深度的基类,当然没有同名的很好访问,但对于上面问题同名情况如何表达,我本意不想用虑基类只产生一个拷贝。就想写出形如:bbb.b22.base2.base.lby=1999或bbb.b12.base2.base.lby=2000这样的访问形式,如不能解决则公有继承的公有成员怎样实现任意访问?

对了,对于二重深度的访问,形如。A.BB1::F(),A.BB2::F()这样的表达式是没有问题的。但是再写下去三重深度
A.BB1::CCC1::F()这样类型的表达式的形式就不行了。


搜索更多相关主题的帖子: include public 表达式 
2013-07-09 16:01
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:10 

class base
{
public:
    int lby;
};

class base1:public base
{
};

class base2:public base
{  

};

class echo:public base1,public base2{};


int _tmain(int argc, _TCHAR* argv[])
{
    echo a;
    a.base1::lby = 1;  
    a.base2::lby = 2;


    printf("a.base1::lby = %d,\r\na.base2::lby = %d.", a.base1::lby, a.base2::lby);

    return 0;
}


[ 本帖最后由 yuccn 于 2013-7-9 20:12 编辑 ]

我行我乐
我的博客:
http://blog.yuccn. net
2013-07-09 20:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-416980-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.073746 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved