游戏开发论坛

 找回密码
 立即注册
搜索
查看: 9234|回复: 28

我理解模板编程的意义

[复制链接]

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
发表于 2007-1-2 06:07:00 | 显示全部楼层 |阅读模式
一定要加上我理解几个字才敢在这里造次。
模板编程似乎还没有真正到达普及的程度,真正强大仍然没有显露出来。
我黎民百姓一只,还不敢对这种方法有什么断言。
只在这里写一些浅见,以供大家茶余饭后笑谈。

最初接触模板,可能只是用于做泛类型容器只用。这方面STL已经基本做到极限。
这时候觉得会使用模板就大错特错了。

可能在一些文章中看到能用int作为模板参数,进而能在编译期做一些数学运算。
在游戏中经常使用的是生成SIN等角度的查表。
在游戏精粹4中也有文章提到这方面应用。把模板作为一个离线计算起来使用。
如果这时候觉得会使用使用模板还是大错特错。

真正模板的作用,以我的理解是,代替面向对象编程中的语义适配(继承,多态)。
而在编译期间进行语法适配(组合,特化)。

具体点说,可能要在面向对象中复用一个对象就需要具备相同的接口,
而接口在面向对象的领域中就是“是什么”的语义。

但是面向对象有时候可能会遇到的问题,就是多种库实现相同功能却不使用相同接口。
比如标准模板库的流std::stream和boost中的流boost::stream。并没有相同接口。
这时候要在同一个类中用相同的代码支持这两种流面向对象就遇到了瓶颈。

这时候就是模板该出现的时候了,模板元编程并不在乎接口,只要你是用相同的语法,我就能兼容使用,就算你语法有些不地道,我还能给你特化出来。基本上是一个天然的适配模式工具。
以上是我所理解的模板,但如果我说我理解模板,那仍然是大错特错了。

看看《C++程序设计新思维》
模板真正强大的地方还是要和面向对象结合使用,基于策略的编程,并没有狭隘的针对与模板一种C++功能,而是集合了面向对象甚至设计模式等诸多领域产生的强大工具集合。
这种设计太超前了,甚至并不怎么好用,或者说我并不怎么会用。

但是看看C++新的发展方向,模板在语言层级上已经可以和面向对象平起平坐了。
所以,你是“现代C++编程”么,已经是衡量是否使用模板编程的专业用语了。

一种完全不同的思维方式。 希望你能喜欢:)




121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2007-1-2 10:11:00 | 显示全部楼层

Re:我理解模板编程的意义

你的题目有点。。。应该是
我所理解的模版编程的意义。
如果是这个题目,是不是就是说,我理解了,你不理解的意思?

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2007-1-2 10:17:00 | 显示全部楼层

Re:我理解模板编程的意义

如果想感受一下模版,可以参考下C++0X里面的Concept.

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2007-1-2 15:03:00 | 显示全部楼层

Re: Re:我理解模板编程的意义

lingjingqiu: Re:我理解模板编程的意义

你的题目有点。。。应该是
我所理解的模版编程的意义。
如果是这个题目,是不是就是说,我理解了,你不理解的意思?

呵呵 笔误 见谅

14

主题

118

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2007-1-2 23:19:00 | 显示全部楼层

Re:我理解模板编程的意义

模板编程的意义其实很简单。
如果我把其意义理解为目的的话,
那么我可以认为模板编程的意义与函数编程的意义是相同的:
为了消除重复。。。。

我不知道的我不说,我只说模板只是一台自动生成代码的机器罢了。
很大程度上代替了CTRL + C ,CTRL + V罢了。

其实这些东西对于动态语言来说是那么的自然,然而高级语言不过是转了个圈又回来了而已。

14

主题

118

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2007-1-2 23:23:00 | 显示全部楼层

Re:我理解模板编程的意义

一样的东西绝对/尽量 不要重复,不管是代码,接口,规则,还是概念。

4

主题

23

帖子

31

积分

注册会员

Rank: 2

积分
31
QQ
发表于 2007-1-3 10:03:00 | 显示全部楼层

Re: 我理解模板喑痰囊庖?> </td> </tr> <

如果在我这边要做出跟ps2游戏比美的好游戏的话..
一定要全用c做出来..绝对不会用c++做...
c++不适合做复杂系统的游戏...

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2007-1-3 20:35:00 | 显示全部楼层

Re: Re: 我

马肝兄说得对,
本人太容易激动,这里改成道歉贴

4

主题

23

帖子

31

积分

注册会员

Rank: 2

积分
31
QQ
发表于 2007-1-3 21:15:00 | 显示全部楼层

Re: 我理解模板编程的意义

D垃圾游戏就不用说出来了..不一管你是xbox ps3
据我所接触的销量好,可玩性强的ps2游戏都是用c做的..
你常试用c做一个恶磨城,鬼泣3,高达等动作游戏比用c++做
难度是1比3倍...看来楼主还未做过一个完整又好玩创新的大游戏系统.
难怪会用c++.....我接触过5000个游戏
用c做的效率,性能都比c++高很多..
因为他灵活性高.任何对象都可随自己定义...做事随机应变...
你不可能用个大对象来服务小对像的..这很浪费的..而且负担太重了
不利于灵活编程

如果做一个TPS或其他的总之就是超复杂性的游戏系统
我相信我用c做出来的时间会比你快3倍

我很长时间没叨过人了..你不要误导别人了..有本事就发布一个自己做出
来完整的游戏才说吧...不要会那一点代码就乱指...真是一个垃圾人是游戏
程序的废人...影响游戏界环境..

17

主题

201

帖子

242

积分

中级会员

Rank: 3Rank: 3

积分
242
QQ
发表于 2007-1-4 10:55:00 | 显示全部楼层

Re:我理解模板编程的意义

有什么好争的,
都拿出东西来不就行了.

以后出来个 什么 E, S, P ... 这个那个语言的...
难道是科学越来越复古了?

能抓到老鼠的就是好猫

模板这么好的思想, 我不信你就不用?!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 10:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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