C_and_CPP 板


LINE

我的開發平台是 win7 工具是QT Creator 版本是Qt Core 5.15.2 有個問題困擾我很久,不知道該怎麼寫才好 故來請教比較好的寫法是什麼 在開始問問題之前想要說明的是 下面我會用到阿公、父親、兒子的說法其實不是很準確 只是單純我自己用來說明什麼class 包含 什麼 class的用詞 如果造成混淆請見諒。 例如 class Father裡面有一個class Child 的 property 而 class GramPa 裡面有一個 class Father 的 property 以下自行理解的解決方法是素人方法 太菜還請見諒 如果兩個Child物件要溝通沒有問題 把一方的signal和slot給connect()起來就好 這也是最基礎的寫法。 只要知道兩個Child的pointer就好。 如果是祖孫溝通 對於 Father 來說 就必須要有 GramPa 和 Child的pointer才能進行connect 對 Father 來說,Child 是自己製造或是本來自己的 property所以沒問題 GramPa 的話 1.除非本來就有寫一個 getParent()來認親,要不然 2.只能一開始在生成 Father的時候在建構子裡面塞 GramPa 的pointer 3.或者是如果 GramPa 偉大到整個program只會有一個 GramPa 的話 也可以用 singleton來取得 GramPa 的pointer 但如果祖孫的距離不只一層呢? 如果是上述的方法1或方法2 會變成每一層都多一個parent pointer 的 field 每一層的建構子都要都要多塞一個parent的pointer,在new 的時候也要把this丟進去 然後每一層的slot都只幹一件事情,就是emit signal給上層 這樣一來寫了一堆很重複很累贅的程式碼只為了傳遞一個訊號 取名也很頭痛,通常會取很相近的名字, 如果這之中有bug出現,還要定睛去看到底是哪一層傳錯,很累。 似乎只能用上述的方法3 singleton,也就變成必須要include GramPa.h 程式多多少少搞得臃腫,如果GramPa.h有改的話還拖累編譯的速度 我不知道我問的是否清楚(因為我要上班了,有點慌亂在亂打文章) 我的程式有很多那種某個小功能按鈕按下去之後要叫很外面的UI做動作的地方 想知道該怎麼做比較好 感謝閱讀 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.225.144 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1657615540.A.4D6.html
1F:推 shibin: 為何GrandPa需要和Child溝通,讓他們跟某Global溝通如何? 07/12 18:57
2F:推 LPH66: 你還有 UI 層, 那樓上的「某Global」可以理解為視窗訊息 07/12 18:59
3F:推 s4300026: 可以用MVC嗎? 祖父是V,孫子是M,父親是C。 父親裡面 07/12 20:31
4F:→ s4300026: 有祖父和孫子,請老爸當傳聲筒。 07/12 20:31
5F:→ s4300026: 然後沒有繼承關係,可以不要用祖父,父親,兒子嗎? 07/12 20:32
6F:→ s4300026: 用event丟出來,叫要做事的人hook。 07/12 20:49
7F:推 wulouise: 裡面???如果是composite就自己各自掛signal不是很正常嗎 07/12 21:57
8F:→ wulouise: 如果是繼承,通常用的人都是用Base/Abstract那層吧 07/12 21:57







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

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

TOP