C_and_CPP 板


LINE

這題我個人是覺得滿單純的 應該是沒有必要用到pimpl 寫了一份比較草率的代碼 有其他想法歡迎指教 基本類別AC http://codepad.org/ZZR2s2Mg 在這邊你看不到子類別的實作 甚至連Class宣告都看不到 繼承類別DC指標生成 http://codepad.org/3JIJmpbY 按照原PO老闆要求 寫在cpp裡面 用戶端呼叫 http://codepad.org/S7sj9wYz 原PO原本寫的doSomething那邊 將this指標回傳 我是有點搞不懂應用情境 畢竟取得instance的手段就已經可以透過NewAbstract生成 這個時候物件管理職責應該是到客戶端那邊 小弟拙見是用object pool來解決 讓class的static member function來做處理 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.45.154
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1484200970.A.3B7.html
1F:→ bluesoul: 無法用object 01/12 14:28
敢問高見 我試了一下 確實會有些介面的問題(不該裸露的介面會暴露) 有沒有更好的解法? 2017/01/12 15:41更新 Pool、基本類別AC http://codepad.org/h8EcO50C Pool物件建立、繼承類別DC http://codepad.org/eUtUZEvZ 用戶端呼叫(Pool初始化、建立物件、Pool銷毀) http://codepad.org/RecSMm3b 有些地方寫得不是很嚴謹 大概一個概念 不知道各位前輩 有沒有什麼建議 分析 謝謝
2F:→ uranusjr: 怎麼講的好像 Pimpl 是多難上手的高深技術 囧 01/12 14:40
3F:→ bachelorwhc: pimpl沒很難 只是在這個case沒必要 01/12 14:42
4F:→ bachelorwhc: 對方的要求是要隱藏data member跟把繼承寫在cpp 01/12 14:44
5F:→ bachelorwhc: 我覺得跟pimpl沒啥關係 01/12 14:44
6F:→ bachelorwhc: pimpl我會拿去處理其他問題 尤其是runtime時期的變化 01/12 14:45
7F:→ bachelorwhc: 還有跟policy組合 01/12 14:46
8F:→ bachelorwhc: 個人見解 01/12 14:46
※ 編輯: bachelorwhc (114.25.45.154), 01/12/2017 15:12:32 ※ 編輯: bachelorwhc (114.25.45.154), 01/12/2017 15:46:45
9F:→ firose: CreateACPtr 跟 getThis 把 shared_ptr<> 跨 dll 傳遞 01/12 20:37
10F:→ firose: 不知是否可以? 01/12 20:37
11F:推 noodleT: DoSomething 需要回傳的是一個新的類別,不是 this 01/12 21:51
12F:→ noodleT: 比如說有個向量A,B 01/12 21:54
13F:→ noodleT: double L = A.cross(B). length(); 01/12 21:54
14F:→ noodleT: 這時候 cross 回傳一個新指標,沒有人負責 delete 01/12 21:54
15F:→ bachelorwhc: got it 這樣就可以明白了 01/12 21:55
16F:→ bachelorwhc: 這樣不是回傳this 而是新的指標 用smart pointer不是 01/12 21:55
17F:→ bachelorwhc: 即可解決問題? 01/12 21:55
18F:推 noodleT: 但在 c++11 之前的解決辦法為? 01/12 21:57
19F:→ bachelorwhc: 你那邊如果有auto_ptr 可以考慮用 01/12 21:59
20F:→ bachelorwhc: 如果沒有的話 我會自己寫物件管理機制 01/12 21:59
21F:→ bachelorwhc: 但有時物件小 其實我會考慮複製物件 01/12 22:00
22F:→ bachelorwhc: 像你說的向量 我覺得到不用回傳指標 01/12 22:00
23F:→ bachelorwhc: 實際上我是看生產物件的生命週期跟用途而定 01/12 22:01
24F:→ bachelorwhc: 所以做法可能會差滿多的 01/12 22:01
25F:推 noodleT: B 大前三個 code 是我目前做法 01/12 22:08
26F:→ firose: 覺得應該要像上篇推文用 rawptr + deleter 給 shared_ptr 01/12 22:46
27F:→ firose: 而非跨模組傳智能指標,這樣有版本問題及ABI不相容之類的 01/12 22:47
28F:推 lovejomi: 介面包含stl不是不好嗎? stl版本不一致不就壞了? 01/12 22:48
29F:→ bluesoul: pimpl就是為了隱藏實作而來,只需要付出多一個指標的代 01/13 01:59
30F:→ bluesoul: 價。直接生成物件,完全不需要管理生命周期。你目前的 01/13 01:59
31F:→ bluesoul: 做法反而讓問題變得複雜,也不好用 01/13 01:59
32F:→ uranusjr: 但他覺得這個簡單的方法沒必要啊 (完全搞不懂邏輯) 01/13 02:36
33F:→ bachelorwhc: @bluesoul 請問我前三份代碼跟pimpl差在哪? 我只用 01/13 11:17
34F:→ bachelorwhc: 繼承多型就能夠處理這個問題 01/13 11:18
35F:→ bachelorwhc: 我的疑問是原PO原文中的doSomething 我不知道他的意 01/13 11:18
36F:→ bachelorwhc: 思 以為要回傳this 所以才提出用object pool解決生命 01/13 11:18
37F:→ bachelorwhc: 期問題 01/13 11:19
38F:→ bachelorwhc: 想請問 @bluesoul @uranusjr 我前三份代碼 哪裡沒隱 01/13 11:20
39F:→ bachelorwhc: 藏實作? 我甚至不需要在父類別新增pimpl的data 01/13 11:21
40F:→ bachelorwhc: member 01/13 11:21
bachelorwhc: 原PO前輩要求"只能在 . h 檔中透漏 member function 01/13 11:26 bachelorwhc: 所以給客戶(PM)的必須為抽象類別" 想請問一下 你抽象 01/13 11:27 bachelorwhc: 類別有pimpl 沒辦法實例化 有什麼用? 01/13 11:27 bachelorwhc: 我是照著題目要求走啦 "只給抽象類別 無data member" 01/13 11:29 ※ 編輯: bachelorwhc (114.25.45.154), 01/13/2017 11:33:05







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