游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3519|回复: 12

很简单的C++问题,考考你

[复制链接]

8

主题

28

帖子

28

积分

注册会员

Rank: 2

积分
28
发表于 2004-11-25 11:29:00 | 显示全部楼层 |阅读模式
class A
{
..........
}

class B: public A
{
  bcd();
}

class C:public A
{
csd();
}

问:如何在csd()中调用bcd()?
nowpaper 该用户已被删除
发表于 2004-11-25 11:59:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

0

主题

64

帖子

64

积分

注册会员

Rank: 2

积分
64
发表于 2004-11-25 13:22:00 | 显示全部楼层

Re:很简单的C++问题,考考你

C::csd()
{
B m_b;
m_b.bcd();
}

6

主题

76

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2004-11-25 16:14:00 | 显示全部楼层

Re: Re:很简单的C++问题,考考你

sx-7: Re:很简单的C++问题,考考你

C::csd()
{
B m_b;
m_b.bcd();
}

不行,bcd()是B的私有成员

可以让C成员B的友元类

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2004-11-25 16:21:00 | 显示全部楼层

Re:很简单的C++问题,考考你

最好就是不要这样搞,如果这样搞的话,我们要类做什么呢?

30

主题

398

帖子

403

积分

中级会员

Rank: 3Rank: 3

积分
403
QQ
发表于 2004-11-25 16:25:00 | 显示全部楼层

Re:很简单的C++问题,考考你

class A
{
..........
}

class B: public A
{
  bcd();
}

class C:public A
{
csd();
}

class C::csd()
{
B::bcd();
}

...........................

2

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2004-11-25 16:38:00 | 显示全部楼层

Re:很简单的C++问题,考考你

用VC试了一下,发现sx-7和flyv的方法果然不行,奇怪

楼主快解答吧

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2004-11-25 16:43:00 | 显示全部楼层

Re: 很简单的C++问题,考考你

从B, C派生一个公共子类
class D : public C, public B
{
  bcd();
  csd();
}

6

主题

76

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2004-11-25 20:20:00 | 显示全部楼层

Re: Re:很简单的C++问题,考考你

乌鸦: Re:很简单的C++问题,考考你

用VC试了一下,发现sx-7和flyv的方法果然不行,奇怪

楼主快解答吧


sx-7的方法不行是因为bcd()是B的私有成员,不能被外界访问

flyv的方法不行是因为除了静态成员函数外,不能直接像B::bcd()这样调用成员函数

17

主题

159

帖子

159

积分

注册会员

Rank: 2

积分
159
QQ
发表于 2004-11-25 23:04:00 | 显示全部楼层

Re:很简单的C++问题,考考你

我才学不久不知道说的对不对呵呵,楼主好像写错了吧,3个class里面应该都有public吧不然一定不能通过,要是我的话我就再建一个类调用上面那两个类,再在主函数内声明个对象.
void main()
{B.t1;
t1.csd();
t1.bcd();}//我才学1个半月不要对我期望太高...........上面还有个类我没写,这样对吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-23 10:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表