Re: [問題] 物件內的物件...彼此溝通的方法?

看板C_and_CPP (C/C++)作者 (Liar)時間16年前 (2009/06/24 10:11), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串2/8 (看更多)
※ 引述《LiarPoker (Liar)》之銘言: : 標題: [問題] 物件內的物件...彼此溝通的方法? : 時間: Wed Jun 24 00:06:52 2009 : 請問假若我有Class A, Class B, Class C, Class D : 彼此沒有繼承關係,而是在Class A中有Class B的object (在A內 new一個B) : Class B內new出一個Class C的object : Class C內new出一個Class D的object : 假若今天Class B, C, D都可能要去call Class A的某個function來改變A的某變數值 : 或是Class A可能去call Class D的某個function來改變D的某變數值 : 請問有哪些比較好的做法呢? (或假若不止A,B,C,D...可能有個十層這樣的關係) : 最普通的方式是在A內new B時,把A轉成pointer傳到B去,B保留一個指向A的pointer : 同樣地在B new C時,繼續把A轉成pointer傳到C去.....類似地一層層傳到最內層 : 但有更好的方法嗎? 謝謝! (否則若當D要call C或B...代表D同時得擁有A,B,C的指標) : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 123.193.5.4 : → avhacker:設計八成有問題,不知你要做啥,也許該看些design patern書 06/24 00:12 一時不知該舉什麼樣的例子,就隨便亂想一個吧: 假若我設計了一個「模擬地球」的軟體: 我有個物件是「地球」 「地球」裡面會生成「島嶼(台灣)」 然後在「島嶼」內會有「都市(台北)」 「都市」裡還有「人類」 (它們分別都是獨立的class object,透過new的方式來建立) 而今天假若有個「人類」要做作業, 得想要透過「地球」的一個函式「取得地球溫度」 來得到「地球」的變數「溫度」 類似的行為可以怎麼實做呢? 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.147.13.222

06/24 20:37, , 1F
人類 拿一個指標指向 地球 就好了吧
06/24 20:37, 1F

06/24 23:16, , 2F
對阿 -_-" 不是很簡單嗎...
06/24 23:16, 2F

06/24 23:27, , 3F
那代表這指標得從地球一層層傳到人類手上
06/24 23:27, 3F

06/24 23:28, , 4F
假設這樣的設計模型有十層好了..感覺似乎不是個好方法?
06/24 23:28, 4F

06/24 23:28, , 5F
所以才請問有沒更好的做法~
06/24 23:28, 5F
文章代碼(AID): #1AGOit9T (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1AGOit9T (C_and_CPP)