C_and_CPP 板


LINE

公司的一位前輩說要打包類別, 要考慮隱藏 data member 。 只能在 . h 檔中透漏 member function. 所以給客戶(PM)的必須為抽象類別, 繼承的類別寫在cpp檔中再去實作。 此外,提供一個 new function 給客戶 如: class Abstract { public: Abstract *DoSomething() const; }; Abstract *NewAbstract(…); 這樣一來,客戶就不知道 data member 比較無法猜出實作細節。 但指標管理會是個問題, 例如上面的 DoSomething 返回指標。 請問大家打包程式碼時, 有什麼技巧呢? --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.28.18.121
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1484105235.A.6BF.html
1F:推 legendmtg: 不就pimpl嗎01/11 11:57
2F:推 damody: 推1樓01/11 13:44
3F:→ bachelorwhc: 你老闆要給對方的是abstract class 介面是return ptr01/11 15:41
4F:→ bachelorwhc: 這不需要什麼特別打包或撰寫技巧吧01/11 15:41
5F:→ bachelorwhc: 編譯出來後是static或dynamic library 除非逆向工程01/11 15:43
6F:→ bachelorwhc: 否則無法知道實作細節01/11 15:44
7F:→ bachelorwhc: 指標管理部分 如果你被要求給裸指標就直接給01/11 15:44
8F:→ bachelorwhc: 需要管理的就用smart pointer01/11 15:45
9F:→ bachelorwhc: 在windows的話 之後只要給對方.h跟.lib 編譯就能過01/11 15:45
10F:→ bachelorwhc: 實際執行期間就像你講的 動態連結dll 執行環境沒有01/11 15:46
11F:→ bachelorwhc: dll windows會自己警告01/11 15:46
12F:→ noodleT: 目前是用 shared prt 做,覺得有些麻煩。01/11 18:48
13F:→ noodleT: 這只是一個討論情境,並沒有真的客戶需求。01/11 18:48
14F:→ noodleT: 我會再往一樓提的方向研究看看01/11 18:48
15F:→ uranusjr: 用 Pimpl 加幾個 macro 用起來很簡單, 也不會有你的問題01/11 20:33
16F:→ uranusjr: 最簡單每個物件用一個 unique_ptr 指向實作時就好, 除非01/11 20:35
17F:→ uranusjr: 想做 copy-on-write 才會比較麻煩, 但那就是另外的問題01/11 20:35
18F:→ firose: 不能用 smart pointer 吧,客戶怎麼知道 NewAbstract 是如01/11 21:16
19F:→ firose: 何以即使用哪個版本產生的?01/11 21:17
客戶只要知道 Abstract 類別名就好了, 至於 NewAbstract 回傳哪一個子類別指標沒都關係, 只要用 Abstract* 都能接收吧? 或者是我誤會你的意思?
20F:推 kwpn: pimpl或pure virtual interface01/11 21:21
※ 編輯: noodleT (36.237.86.47), 01/11/2017 22:19:38 ※ 編輯: noodleT (36.237.86.47), 01/11/2017 22:20:42
21F:→ firose: 是可以接收,但清除就有麻煩,delete 不一定能工作吧 01/11 22:53
22F:→ hylkevin: 絕對要有virtual dtor,否則delete base pointer是未定 01/11 23:41
23F:→ hylkevin: 義行為。 01/11 23:41
24F:推 kevingwn: 不用virtual dtor,而是需要成對的new/delete,因為dll的 01/12 18:50
25F:→ kevingwn: CRT和exe不一定相同 參考http://ideone.com/hHyGzP 01/12 18:50
26F:推 EdisonX: 提供另一個方式 : Linker , #1IcjMQK3 (C_and_CPP) 01/14 12:53
27F:→ EdisonX: 不是方式,是方向XD 01/14 12:55







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燈, 水草

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

TOP