[問題] 如何在兩個class中共用一個物件

看板C_and_CPP作者時間5年前 (2019/06/07 23:37), 5年前編輯推噓5(509)
留言14則, 7人參與, 4年前最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) 目前在Ubuntu上使用Qt 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 目前我正在寫一個小精靈的遊戲,其中有小精靈和鬼兩個class(Pacman和Ghost) 在鬼的class裡面,鬼要怎麼走需要參考小精靈現在的位置(去追小精靈) 我現在在主程式MainWindow.cpp中new出小精靈和鬼,除了在視窗中顯示出物件, 用鍵盤改變小精靈的方向和位置時也是用MainWindow的小精靈指到Pacman去做 為了在Ghost中也能使用到小精靈的位置,我在Ghost裡也new了一個小精靈 但我想應該是因為兩個小精靈不是同一個的關係, 現在Ghost裡得到的小精靈的位置都是遊戲初始給的位置 不會隨著遊戲中位置改變而跟著改變座標的值 請問有沒有什麼方法可以讓Ghost.cpp和MainWindow.cpp共用一個小精靈的object? 麻煩大家幫忙了orz 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) https://reurl.cc/mQ0KM 上面這個連結是我在stackoverflow的發問 有附上部分比較重要的code 但是因為是第一次發問寫不夠清楚又不懂規定 目前被put on hold...(現在的問題內容有修改過) 另外我在那邊問的是如何取得其他class中的變數 因為我一開始以為單純是座標的值沒辦法傳到Ghost.cpp裡 但是看完下面那個回覆,我想應該是兩個class使用不同個小精靈的關係 指示還是不知道確切應該怎麼做@@ 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.164.14.21 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1559921857.A.7CB.html

06/07 23:48, 5年前 , 1F
我覺得你最好把基本的語法先弄懂再來搞這些
06/07 23:48, 1F

06/07 23:50, 5年前 , 2F
小精靈是唯一的話最簡單的方法就是Sigleton Pattern
06/07 23:50, 2F
因為我是跟同學一起去修資工的課 現在這個是期末project 雖然知道自己基礎不好 但是 東拼西湊的也要把它弄出來@@

06/08 00:36, 5年前 , 3F
你會寫一個有argument的函數嗎?把物件或是從物件得到的參
06/08 00:36, 3F

06/08 00:36, 5年前 , 4F
數放進去就好
06/08 00:36, 4F
好的我試試看 ※ 編輯: rangerssohot (223.139.113.187 臺灣), 06/08/2019 01:48:39

06/08 05:42, 5年前 , 5F
class跟object要分清楚,object是class的實例
06/08 05:42, 5F

06/08 05:43, 5年前 , 6F
意思是class是設計圖,object是依據設計圖造出的成品
06/08 05:43, 6F

06/08 05:47, 5年前 , 7F
根據一張設計圖,你可以造出n個看起來一模一樣的成品
06/08 05:47, 7F

06/08 05:50, 5年前 , 8F
但是那些成品都是獨立的,個別成品都獨立佔有特定的時空
06/08 05:50, 8F

06/08 06:42, 5年前 , 9F
06/08 06:42, 9F

06/08 11:55, 5年前 , 10F
可以用connect,當小精靈位置變化的時候,傳參數給每個鬼
06/08 11:55, 10F

06/08 13:10, 5年前 , 11F
你只要初始化的時候把小精靈傳鬼給就好了吧
06/08 13:10, 11F

06/09 22:56, 4年前 , 12F
成大資訊系程設(二)齁
06/09 22:56, 12F

06/10 11:57, 4年前 , 13F
樓上助教
06/10 11:57, 13F

06/10 13:27, 4年前 , 14F
樓上也助教
06/10 13:27, 14F
文章代碼(AID): #1S-eJ1VB (C_and_CPP)