游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3316|回复: 8

虚函数只为区分重载函数??

[复制链接]

97

主题

590

帖子

590

积分

高级会员

Rank: 4

积分
590
QQ
发表于 2004-4-4 22:05:00 | 显示全部楼层 |阅读模式
虚函数只为区分重载函数??
加了virtual,就可以把基类和派生类的同名函数区分开来,在运行时载入对应的函数。
难道只有这么个功能?这就是多态性,面向对象了吗?那为什么一定要用同名函数呢?用C++编游戏时,调用虚函数就是这个目的吗?实在看不出来。(今天刚学虚函数,还请指教,谢谢)

62

主题

331

帖子

366

积分

中级会员

Rank: 3Rank: 3

积分
366
QQ
发表于 2004-4-4 22:17:00 | 显示全部楼层

Re:虚函数只为区分重载函数??

哥哥很有想法吖

..

37

主题

378

帖子

388

积分

中级会员

Rank: 3Rank: 3

积分
388
QQ
发表于 2004-4-4 23:04:00 | 显示全部楼层

Re:虚函数只为区分重载函数??

还有纯虚函数,可以实现接口,这样就可以避免让人头疼的多重继承

6

主题

48

帖子

48

积分

注册会员

Rank: 2

积分
48
发表于 2004-4-5 09:46:00 | 显示全部楼层

Re:虚函数只为区分重载函数??

比如说,你的形状类有一个接口叫做DRAW
但是,派生的圆形,方形有各自不同的绘制方法.
如果是老式的风格,可能就会SWITCH一下类型
但是有了重载之后,你就可以为每个形状写一个单独的DRAW.
最后,你可以用形状类去管理他们.而且可以用单独的DRAW达到绘制不同形状的目的.

15

主题

83

帖子

123

积分

注册会员

Rank: 2

积分
123
发表于 2004-4-5 10:07:00 | 显示全部楼层

Re:虚函数只为区分重载函数??

刚学是有这个疑问。

虚函数是多态的基石,“很多问题都可以经过增加一个间接层来解决”,虚函数就是这么一个间接层。虚函数是如何实现的不是重点,而重点是他表现出来的性质和目的。

他的目的就是把一序列的相似的行为抽象出来,把不同的实现模糊到相同的接口之后。

在OO中,我们几乎总是在贯彻一种is a和has a的思想,世界由对象构成,而大对象由小对象构成。同类的对象具有相似的行为,而我们使用多态来描述这种相似的行为。

11

主题

132

帖子

132

积分

注册会员

Rank: 2

积分
132
QQ
发表于 2004-4-5 12:12:00 | 显示全部楼层

Re:虚函数只为区分重载函数??

头痛!

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2004-4-5 16:25:00 | 显示全部楼层

Re: Re:虚函数只为区分重载函数??

hWnd: Re:虚函数只为区分重载函数??

还有纯虚函数,可以实现接口,这样就可以避免让人头疼的多重继承

写纯虚函数就能避免多重继承?这倒是头一会听说。。。

5

主题

17

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2004-4-6 15:48:00 | 显示全部楼层

Re: 虚函数只为区分重载函数??

面向对象编程是对接口编程,而不是对实现编程(最近看<<设计模式>>,获益不浅)

37

主题

378

帖子

388

积分

中级会员

Rank: 3Rank: 3

积分
388
QQ
发表于 2004-4-12 23:35:00 | 显示全部楼层

Re:虚函数只为区分重载函数??

哟……
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-30 02:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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