[分享] 物件導向 in C

看板GameDesign作者 (CJ Cat)時間12年前 (2012/01/27 17:10), 編輯推噓10(10021)
留言31則, 9人參與, 最新討論串1/1
現在都有了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

01/27 17:38, , 1F
不一定要寫物件導向.
01/27 17:38, 1F

01/27 17:40, , 2F
我意思是 物件導向可以協助架構抽象化,但不是重點.
01/27 17:40, 2F

01/27 17:41, , 3F
用C寫物件導向.已經不是一個問題.而只是一個練習題.
01/27 17:41, 3F

01/27 19:13, , 4F
可以問一下這樣做有什麼好處嘛?
01/27 19:13, 4F

01/27 19:39, , 5F
很多平台使用的語言是沒有物件導向特性的.
01/27 19:39, 5F

01/27 20:11, , 6F
學生要先思考 為什麼要用OO 什麼情況下需要用OO
01/27 20:11, 6F

01/28 01:04, , 7F
因為我很習慣AS3,所以傾向於用OO的方式建構framework
01/28 01:04, 7F

01/28 01:05, , 8F
我的隊友也很習慣OO,同意用這種方式建構引擎會讓他們
01/28 01:05, 8F

01/28 01:05, , 9F
比較好擴充,當然driver本身還是非OO
01/28 01:05, 9F

01/28 01:06, , 10F
所以我想我們用OO的理由,簡單來說就是方便擴充
01/28 01:06, 10F

01/28 02:28, , 11F
我覺得要先思考為什麼要用C作OO
01/28 02:28, 11F

01/28 02:29, , 12F
20年前的書除了理論相關的書早就過時了
01/28 02:29, 12F

01/28 04:20, , 13F
為啥在C裡面可以用"->" 啊 我怎麼從來都不知道 囧
01/28 04:20, 13F

01/28 05:11, , 14F
@rofel 因為我們把project分兩個部分,framework + 擴充
01/28 05:11, 14F

01/28 05:11, , 15F
擴充才是遊戲內容本體,我們比較習慣以OO方式擴充
01/28 05:11, 15F

01/28 06:08, , 16F
感謝。
01/28 06:08, 16F

01/28 06:09, , 17F
01/28 06:09, 17F

01/28 06:09, , 18F
之前海洋大學也有一個,資料更豐富,但是網站掛了= ="
01/28 06:09, 18F

01/28 18:26, , 19F
@justben 存取元件屬性是用" . " 而元件是指標則用" -> "
01/28 18:26, 19F

01/30 04:23, , 20F
這不是C++的東西嗎? 囧 在linux下用gcc 編譯應該不會過吧
01/30 04:23, 20F

01/30 04:31, , 21F
阿 我記錯了 的確是有這東西的
01/30 04:31, 21F

01/30 10:26, , 22F
其實只用C寫是有他的好處的,我之前寫過一個程式
01/30 10:26, 22F

01/30 10:27, , 23F
是用server-client架構去模擬檔案系統的作業 那時候我剛學
01/30 10:27, 23F

01/30 10:28, , 24F
C,寫到蛋蛋都快爆掉了。就用最土法煉鋼的方式寫 連struct
01/30 10:28, 24F

01/30 10:29, , 25F
都沒用。因為之前學C++所以有些語法混合在一起用
01/30 10:29, 25F

01/30 10:29, , 26F
有時候發生莫名其妙的錯誤。 後來我同學告訴我最好只用C
01/30 10:29, 26F

01/30 10:32, , 27F
用C去模擬OO,可能就是訓練如何避掉 compiler的bug吧 ? @@
01/30 10:32, 27F

01/30 10:33, , 28F
你應該把C++學好,而不是因為這樣就只用C
01/30 10:33, 28F

01/30 10:59, , 29F
沒錯,那時候我的高手同學還用C++實做出inode完成作業
01/30 10:59, 29F

02/20 23:14, , 30F
不久前我還在結構內放函式指標,看起來很像成員函式
02/20 23:14, 30F

02/20 23:14, , 31F
想想還真是無聊啊
02/20 23:14, 31F
文章代碼(AID): #1F8ceOnf (GameDesign)