Re: [問題] 物件內的物件...彼此溝通的方法?
※ 引述《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
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章