分享:
▲
▼
2、C++
C++语言是具有面向物件特性的C语言的继承者。面向物件编程,或称OOP是结构化编程的下一步。OO程式由物件组成,其中的物件是资料和函数离散集合。有许多可用的物件库存在,这使得编程简单得只需要将一些程式〝建筑材料〞堆在一起(至少理论上是这样)。比如说,有很多的GUI和资料库的库实现物件的集合。
C++总是辩论的主题,尤其是在游戏开发论坛里。有几项C++的功能,比如虚拟函数,函数呼叫的决策制定增加了一个额外层次,批评家很快指出C++程式将变得比相同功能的C程式来得大和慢。C++的拥护者则认,用C写出与虚拟函数等价的代码同样会增加开支。这将是一个还在进行,而且不可能很快得出结论的争论。
我认,C++的额外开支只是使用更好的语言的小付出。同样的争论发生在六十年代高级程式语言如COBOL和FORTRAN开始取代汇编成语言所选的时候。批评家正确的指出使用高阶语言编写的程式天生就比手写的组合语言来得慢,而且必然如此。而高阶语言支持者认这点小小的性能损失是值得的,因COBOL和FORTRAN程式更容易编写和维护。
优点:组织大型程式时比C语言好得多。很好的支援面向物件机制。通用资料结构,如链表和可增长的阵列组成的库减轻了由于处理低层细节的负担。
缺点:非常大而复杂。与C语言一样存在语法滥用问题。比C慢。大多数编译器没有把整个语言正确的实现。
移植性:比C语言好多了,但依然不是很乐观。因它具有与C语言相同的缺点,大多数可携性用户介面库都使用C++物件实现。
使用C++编写的游戏:非常非常多。大多数的商业游戏是使用C或C++编写的。
资料:最新版的《The C++ Programming Language》非常好。作教程,有两个阵营,一个假定你知道C,另外一个假定你不知道。到目前止,最好的C++教程是《Who''s Afraid of C++》,如果你已经熟知C,那试一下《Teach Yourself C++》。
3、我该学习C++或是该从C开始
我不喜欢这种说法,但它是继〝我该使用哪门语言〞之后最经常被问及的问题。很不幸,不存在标准答案。你可以自学C并使用它来写程式,从而节省一大堆的时间,不过使用这种方法有两个弊端:
‧你将错过那些在游戏中可能是更有效的资料建模方式。 ‧不用马上开始学习 OO 编程,但可能要强制你改掉最终必须忘掉的编程坏习惯,这一点请相信我。
最大的商业游戏,包括第一人称射击游戏很多并没有使用C++。但是,这些程式的作者即使使用老的C的格式,他们通常坚持使用面向物件编程技术。如果你只想学C,至少要自学OO(面向物件)编程技术。OO是仿真(游戏)的完美方法,如果你不学习OO,你将不得不〝辛苦〞的工作。
[ 此文章被icehawk在2006-12-10 11:15重新编辑 ]
|