→ Lipraxde: 研究一下C語言的歷史,然後改用C++ 02/20 00:19
推 chuegou: 我好像有一篇是跟你有一樣的困擾 你參考看看 02/20 00:31
→ tjjh89017: 你CAR那邊可以考慮不用CAR_DOOR*,而直接用CAR_DOOR 02/20 02:15
→ tjjh89017: 然後再搭配一些init function或是init macro 02/20 02:15
→ tjjh89017: 應該可以解決你的問題 02/20 02:15
推 IhateOGC: 我會寫init ,marco 幾年後誰來維護 02/20 06:09
推 IhateOGC: 手邊十個bug還要花時間弄懂你寫的 02/20 06:11
→ IhateOGC: 對團隊來說是地雷 02/20 06:11
推 IhateOGC: 太多fuction根本不是問題,ide就解決了 02/20 06:13
推 eye5002003: 比起物件導向的思維,函數式(FP)的作風更適合C 02/20 11:35
→ eye5002003: 用C寫OO只要一個結構配一堆函式就好了,想太多都是徒勞 02/20 11:38
→ Lipraxde: 你在呼叫open, close ...的時候如果要指定哪個門或哪台 02/20 12:50
→ Lipraxde: 科的門,最後還是要把指標傳進去,C這樣用真的會比較方 02/20 12:50
→ Lipraxde: 便嗎? 02/20 12:50
→ loveme00835: 你先從 Abstract Data type (ADT) 去設計, 我發現很 02/20 13:55
→ loveme00835: 多書在教人寫扣的時候都忽略抽象化這個觀念, 先提供 02/20 13:55
→ loveme00835: 足夠的抽象化, 其他封裝什麼的都是在這個前提下去作 02/20 13:58
→ loveme00835: 的, 方法各異. 簡單的例子可以看 fopen/fclose 系列 02/20 13:59
→ loveme00835: 的擋案操作 02/20 13:59
推 Neisseria: Stroustrup 博士曾經有類似的困擾,他最後做了新語言 02/20 14:56
→ Neisseria: 要不要考慮直接用他做的語言,還蠻多人用的 02/20 14:57
→ Neisseria: 認真回,把結構當 this 指標,永遠擺在函式第一個參數 02/20 14:59
→ descent: 所以才有 c++, 其他人寫的也是這樣, 不會有更好的寫法了 02/20 17:50
→ descent: 你的 open 還沒有把 door * 傳進去 02/20 17:53
→ descent: 加上後, 會更冗長 02/20 17:53
謝謝各位的建議,我收穫良多,不過需要一些時間思考跟查資料,所以沒針對各位提供
的方案即時回覆。
有一點要澄清一下,雖然我的OOP不是學得很深,但是只要情況允許C++絕對是我的首選。
只是因為程式運行的平台大多是MCU/MPU/DPS這類產品,大部分的平台開發環境只提供
C編譯器,或是更多的場合是在維護或擴增老舊的C code專案功能,才會出現這種用C
去寫這類結構的情境。
※ 編輯: icetofux (111.250.44.253), 02/20/2019 21:48:07
→ Neisseria: 網路上找 C 語言 物件導向 有一些文章會展示手法 02/20 23:46
→ Neisseria: 本來就不是語言內建的東西,用一些概念去寫得像 OO 02/20 23:47