我有一個學生類的列表。在每個學生中都有一個班級成員,它是一個大學班級指針(每個大學班級的基礎班級)。在建立清單時,我希望同一所大學的所有學生指出他們大學的同一個實例。C++類實例的地址
有沒有辦法得到類的實例地址而不直接訪問它? 如何檢查某個類的實例是否已經構建?
我有一個學生類的列表。在每個學生中都有一個班級成員,它是一個大學班級指針(每個大學班級的基礎班級)。在建立清單時,我希望同一所大學的所有學生指出他們大學的同一個實例。C++類實例的地址
有沒有辦法得到類的實例地址而不直接訪問它? 如何檢查某個類的實例是否已經構建?
您需要知道其包含的類的實例的容器類。因此,要知道是否已經有一個具有特定特徵的類的實例,請問容器。容器可以創建一個,如果它不存在或者可以將其留給調用代碼。 C++標準庫中有許多容器。你可能想要一個unordered_map
或者,如果你不想額外的複雜性,一個map
。
當你說地圖時,你的意思是像散列圖嗎? – itzikos
@ user3126715無序映射是散列映射。地圖更像一棵樹。 –
可以有多種方法來實現這一點,一種簡單的方法可以是讓大學的構造函數爲private,並且具有一個靜態函數,該函數需要大學名稱(或其他標識符)並返回指向大學類的指針。
該功能可以使用map
內部跟蹤,如果所大學的名字沒有在地圖上創建一個新的實例把它放在地圖上,並返回它,否則返回現有的實例。
您的課堂名稱中有可怕的錯字。 – 2013-12-22 07:42:26
你是什麼意思? – itzikos
@userXXX這種類型的學校被稱爲「大學」,而不是「univercity」。 – 2013-12-22 08:33:55