作者cjcat2266 (CJ Cat)
看板GameDesign
标题[分享] 物件导向 in C
时间Fri Jan 27 17:10:44 2012
现在都有了C++,或许这个主题有点过时
我的学校规定这学期的游戏project只能用C写
(这个限制只有第二学期有,其他学期皆无此限制)
写习惯了AS3,突然有此限制实在是有点懊恼
我的教授提到了一本叫做Object-Oriented Programming with ANSI C的书
(於1993年出版,都快20年了XD)
於是我开始读这本书
经过不断的实验与改进,我总算归纳出一个简单但是有系统又效的方法
在此分享给大家
http://blog.cjcat.net/2012/01/object-oriented-structures-in-c/
--
Blog
http://blog.cjcat.net
Gallery
http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 67.168.100.71
1F:推 NDark:不一定要写物件导向. 01/27 17:38
2F:推 NDark:我意思是 物件导向可以协助架构抽象化,但不是重点. 01/27 17:40
3F:→ NDark:用C写物件导向.已经不是一个问题.而只是一个练习题. 01/27 17:41
4F:推 osanaosana:可以问一下这样做有什麽好处嘛? 01/27 19:13
5F:推 NDark:很多平台使用的语言是没有物件导向特性的. 01/27 19:39
6F:→ VVll:学生要先思考 为什麽要用OO 什麽情况下需要用OO 01/27 20:11
7F:→ cjcat2266:因为我很习惯AS3,所以倾向於用OO的方式建构framework 01/28 01:04
8F:→ cjcat2266:我的队友也很习惯OO,同意用这种方式建构引擎会让他们 01/28 01:05
9F:→ cjcat2266:比较好扩充,当然driver本身还是非OO 01/28 01:05
10F:→ cjcat2266:所以我想我们用OO的理由,简单来说就是方便扩充 01/28 01:06
11F:推 rofellosx:我觉得要先思考为什麽要用C作OO 01/28 02:28
12F:→ rofellosx:20年前的书除了理论相关的书早就过时了 01/28 02:29
13F:推 justben:为啥在C里面可以用"->" 啊 我怎麽从来都不知道 囧 01/28 04:20
14F:→ cjcat2266:@rofel 因为我们把project分两个部分,framework + 扩充 01/28 05:11
15F:→ cjcat2266:扩充才是游戏内容本体,我们比较习惯以OO方式扩充 01/28 05:11
16F:推 FSVDFS:感谢。 01/28 06:08
18F:→ FSVDFS:之前海洋大学也有一个,资料更丰富,但是网站挂了= =" 01/28 06:09
19F:→ VVll:@justben 存取元件属性是用" . " 而元件是指标则用" -> " 01/28 18:26
20F:→ justben:这不是C++的东西吗? 囧 在linux下用gcc 编译应该不会过吧 01/30 04:23
21F:→ justben:阿 我记错了 的确是有这东西的 01/30 04:31
22F:推 justben:其实只用C写是有他的好处的,我之前写过一个程式 01/30 10:26
23F:→ justben:是用server-client架构去模拟档案系统的作业 那时候我刚学 01/30 10:27
24F:→ justben:C,写到蛋蛋都快爆掉了。就用最土法炼钢的方式写 连struct 01/30 10:28
25F:→ justben:都没用。因为之前学C++所以有些语法混合在一起用 01/30 10:29
26F:→ justben:有时候发生莫名其妙的错误。 後来我同学告诉我最好只用C 01/30 10:29
27F:→ justben:用C去模拟OO,可能就是训练如何避掉 compiler的bug吧 ? @@ 01/30 10:32
28F:→ littleshan:你应该把C++学好,而不是因为这样就只用C 01/30 10:33
29F:推 justben:没错,那时候我的高手同学还用C++实做出inode完成作业 01/30 10:59
30F:推 eye5002003:不久前我还在结构内放函式指标,看起来很像成员函式 02/20 23:14
31F:→ eye5002003:想想还真是无聊啊 02/20 23:14