| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 696 人关注过本帖
标题:[求助]关于继承的问题
取消只看楼主 加入收藏
RL720
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2005-11-6
收藏
 问题点数:0 回复次数:3 
[求助]关于继承的问题
#include<iostream.h>

class A
{
public:
int a;
};

class B:public A
{
public:
int b;
};

class C:public A
{
public:
int c;
};

class D:public B,public C
{
public:
int d;
};

void main()
{
A aa;
B bb,*pB;
C cc;
D dd;
aa.a=1;
bb.a=2;
cc.a=3;
pB=&dd;
cout<<bb.a<<'\n'
<<pB->a<<'\n'
<<dd.B::a<<'\n';
}

我是想用一个指向基类的指针指向派生类的对象来解决二义性问题

应该输出 2 2 2 阿

结果并不如此

高手指点一下~

谢过~
搜索更多相关主题的帖子: 继承 
2005-11-09 18:55
RL720
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2005-11-6
收藏
得分:0 
以下是引用zcx8532在2005-11-9 21:53:18的发言:
你的程序并不存在二义性,因为对象dd的a并没有显式地赋值,所以是个无法确定的数

如果没有赋值的话不是应该继承基类的值么


2005-11-10 19:54
RL720
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2005-11-6
收藏
得分:0 
以下是引用yamz_1983在2005-11-9 22:11:30的发言:

都是public数据成员,这样数据对派生类都是可见的,好像不能解决二义性,不知是不是这样,感觉数据成员为public违背了类设计封装性

跟public没关系拉
只是一个小程序方便解决问题用的


2005-11-10 19:56
RL720
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2005-11-6
收藏
得分:0 

啊啊....改成用构造函数赋值就可以了~~
class A

{

public:

int a;

A(){a=1;}

};

这样就行~~


2005-11-11 23:23
快速回复:[求助]关于继承的问题
数据加载中...
 
   



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

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