C_and_CPP 板


LINE

※ 引述《liu2007 (薯)》之銘言: : 會變成每一層都多一個parent pointer 的 field : 每一層的建構子都要都要多塞一個parent的pointer,在new 的時候也要把this丟進去 : 然後每一層的slot都只幹一件事情,就是emit signal給上層 : 這樣一來寫了一堆很重複很累贅的程式碼只為了傳遞一個訊號 : 取名也很頭痛,通常會取很相近的名字, : 如果這之中有bug出現,還要定睛去看到底是哪一層傳錯,很累。 : 似乎只能用上述的方法3 singleton,也就變成必須要include GramPa.h : 程式多多少少搞得臃腫,如果GramPa.h有改的話還拖累編譯的速度 : 我不知道我問的是否清楚(因為我要上班了,有點慌亂在亂打文章) : 我的程式有很多那種某個小功能按鈕按下去之後要叫很外面的UI做動作的地方 : 想知道該怎麼做比較好 : 感謝閱讀 其實跟阿公、老爸、兒子無關,因為這個問題其實是把繼承與介面搞錯 當然我不知道你實際上的程式碼長怎麼樣,舉例來說 QA <- QB <- QC 這樣的類型設計好了 你應該要思考的是 B 有沒有必要包含 A,C 有沒有必要包含 B 如果你需要的是共通介面,那應該是讓 QA QB QC 去虛擬繼承一個 interface (pure abstract class) ,我們就叫 QI 好了 以UI的設計角度來說,我會認為除了 Model 或 View 以外,基於Qt框架以上又延展到 三四層的繼承關係是很奇怪的。 再來是 connecting 的問題,根據你的描述我認為你應該是透過 constructor 傳遞指 標來進行 connecting。如果你按照我上述所講的 將繼承改為介面實作 後,這個問 題的解法也就簡單,同樣是使用一個認識 QA 的 class,這個 class 可以是 builder 也可以是 factory,甚至可以透過 template 的方式決定你要建構的物件,最簡單也 可以是 function,在建立的同時就完成 connecting 例如 (智能指標跟constraint我就懶得打了) template<typename T, typename... Args> QI* create(QA& master, Args&&...); 這邊寫 QA 是因為假定你的QA是整個運轉的中樞或橋梁之類的存在...... 其實類似的作法還有很多,比方說你原文提到的 「我的程式有很多那種某個小功能按鈕按下去之後要叫很外面的UI做動作的地方」 這種其實也能看作是 global event 最後我會建議你去了解一下 Qt 整個 MVC 的架構設計,我看過很多人都把 Model 的 邏輯刻在 UI 上...... 實際上 Ot 其本身提供的工具跟基礎類別了解的話能省下很 多時間 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.111.117 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1657637296.A.8DD.html







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

請輸入看板名稱,例如:e-shopping站內搜尋

TOP