C_and_CPP 板


LINE

小弟最近在拜讀Axel-Tobias Schreiner的Object-oriented Programming in ANSI-C, 殊不知看不太懂作者想要表達的想法與觀念,故想上網請教前輩們。 附上pdf網址:https://www.cs.rit.edu/~ats/books/ooc.pdf 在PDF第7頁,"Alternatively, we can define a data type as a set of values plus operations to work with them." data type可以定義為一組數值+上與數值的運算,不太懂這句話想要表達的含意是什麼(註 :我只會C,不會C++) 對我來說data type就是最基本的int, char,double與float,其餘像是array, struct, union都是最基本的延伸的變化型。 接著在下列的這句話"Typically, the values are what a computer can represent, and the operations more or less reflect the available hardware instructions. int in ANSI-C does not do too well in this respect: the set of values may vary between machines, and operations like arithmetic right shift may behave differently." 第二句看不懂,operation體現出可使用的硬體指令?為什麼ANSI-C的int在這方面做得不太 好?是哪方面? 接著,"More complicated examples do not fare much better. Typically we would define an element of a linear list as a structure" 作者說明更複雜的data type進展的也不是很好,並舉例了一個例子: typedef struct node { struct node * next; ... information ... } node; and for the operations we specify function headers like node * head (node * elt, const node * tail); 作者說明,這個方法相當馬虎,好的原則應該是要隱藏data item的representation且只 declare possible manipulations. 問題1: 什麼是 linear list? 為什麼這個struct是linear list的一種? 問題2: head應該是指向一個函式的指標吧? 問題3: 所以operation不是指+ - * /這類的? 問題4: 這個例子的representation of data item是那些東西? 問題5: only declare possible manipulation是指什麼意思? 問題6: 為什麼這個方法會相當馬虎? 哪邊馬虎? --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.26.157
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1502782305.A.C87.html
1F:→ james732: 先查一下什麼是linked-list? 08/15 15:38
我知道什麼是Linked-list ※ 編輯: zzss2003 (60.248.26.157), 08/15/2017 15:40:46
2F:→ james732: 他的linear list應該跟linked-list是一樣的東西? 08/15 16:36
我不確定...所以才上來問版友@@ ※ 編輯: zzss2003 (60.248.26.157), 08/15/2017 16:54:59
3F:推 chuegou: 這裡的operation應該是指oop的"方法"? 08/15 19:05
4F:推 chuegou: 這裡的data type不好 是因為他沒有包含操作該data的方法 08/15 19:11
5F:→ chuegou: 作者應該認為好的data應該包含"方法" 08/15 19:11
6F:→ chuegou: 像是c++的class那樣 08/15 19:12
7F:→ chuegou: 第二個例子就用struct作一個類似class的封裝 08/15 19:12
8F:→ chuegou: 其中包含了head這個方法 08/15 19:13
9F:→ longlongint: 比如說我要定義 2bits 的正整數型態 08/15 23:19
10F:→ longlongint: 數值有 0 1 2 3, 0+1=1 1+1=2 等等可以列舉16種可能 08/15 23:21
11F:→ longlongint: 資料的表示 跟如何運算的意思啦...... 08/15 23:22
12F:→ longlongint: 然後第二段是在靠北說一樣的碼不同機器跑結果不一樣 08/15 23:23
13F:→ longlongint: 其實講這麼多只是盡量希望所有東西都定義清楚 08/15 23:28
14F:推 legendmtg: 整段就是在跟你說封裝很重要啦 08/16 13:32
15F:→ zzss2003: 謝謝兩位大大的解釋,小弟資質太淺還是看不懂QQ 08/16 14:07
16F:推 Neisseria: 這本是好書,第一次看看不懂,後來才慢慢了解作者的 08/16 14:34
17F:→ Neisseria: 用意。不過,除了非得用 C 寫程式的場合外,還是用 08/16 14:34
18F:→ Neisseria: C++ 或 Java 比較簡單,有現成的物件系統可用 08/16 14:35
19F:→ zzss2003: 想請問N大,我現在在寫嵌入式軟體(純C),這本對我現在 08/16 15:57
20F:→ zzss2003: 的幫助大嗎? 08/16 15:57
21F:→ zzss2003: 因為之後想要自己玩看看RTOS,很怕對物件導向的觀念不熟 08/16 15:58
22F:→ zzss2003: 導致寫出來的OS之後要修改必須要砍掉重練 08/16 15:58
23F:推 Neisseria: 嵌入式裝置我沒有碰,可能問問版上其他高手 08/16 16:12
24F:→ Neisseria: 基本上,OOP 的作用在協助我們整理程式碼,應該和特定 08/16 16:12
25F:→ Neisseria: 領域無關,都會有所幫助 08/16 16:13
26F:→ dou0228: C 寫 Class,寫熟了就算簡單 08/16 16:13
27F:→ dou0228: 可以多看點 Linux Kernel 程式碼,不少這樣概念寫出來的 08/16 16:14
28F:→ dou0228: 好的程式碼應該看到 structure 就能搞懂邏輯 08/16 16:15
29F:推 chuegou: 我也是寫嵌入式 我對於oop in c的感想 08/16 18:56
30F:→ chuegou: 就是就算不會oop, 但為了維護等原因 08/16 18:56
31F:→ chuegou: c寫久了你就會自己做一些簡單類似oop的封裝 08/16 18:56
32F:→ chuegou: 這時候再來看oop in c,會有"阿阿我懂我懂"的認同感 08/16 18:56
33F:→ chuegou: 然後我認為 rtos重要的是os觀念 08/16 18:59
34F:→ chuegou: 照著你選的os的framwork來寫即可 08/16 18:59
我現在就是還在初階段XD沒有啊...阿...嘶我懂我懂的感覺QQ ※ 編輯: zzss2003 (60.248.26.157), 08/18/2017 13:11:25







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP