游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2245|回复: 5

关于多重继承基类指针赋值问题。

[复制链接]

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2004-6-13 20:27:00 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-6-13 21:42:00 | 显示全部楼层

Re:关于多重继承基类指针赋值问题。

楼主没弄明白virtual 加在class前面的意思吧。
这里的virtual是定义一个虚的父类。
比如说在你的例子里面,CD和CA之间并没有直接关系。
而是由中间的虚父类CB和CC代替了。
所以你应该这样声明:
class CA;
class CB : virtual public CA;
class CC : virtual public CA;
class CD : public CB, public CC;
这样就可以符合你的要求了。

声明为虚父类的好处就是在真正的基类,也就是CA的成员变量。
CB和CC并不会产生copy,只有在她们再上一层声明的类,才会
有CA,CB,CC,这三个基础类的成员变量的拷贝。

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
 楼主| 发表于 2004-6-13 22:08:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
 楼主| 发表于 2004-6-13 22:16:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-6-14 03:59:00 | 显示全部楼层

Re:关于多重继承基类指针赋值问题。

-。- 出去吃饭,一会回来再回。

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-6-14 12:50:00 | 显示全部楼层

Re:关于多重继承基类指针赋值问题。

回来了,回答你吧。。
virtual这个东西一般用在从某个基类派生的一类基类上。
比如说有个基础类叫:
class CHuman;
然后从中派生出男人和女人,就应该用virtual来继承CHuman,因为男人和女人也是基类。
class CMaleHuman : virtual public CHuman;
class CFemaleHuman : virtual public CHuman;
这个一般就只用在这一种情况下。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-1 20:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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