我有3個不同的對象,我們可以稱它們爲:Box,Square,Triangle。現在,我想創建一個需要傳遞對象的更新函數。據我所知,該功能應該是這樣的在C中使用對象#
void Update(Box box, Square square, Triangle triangle)
{
//do something
}
這就要求我通過這三個對象即使有時我想更新只是其中之一。我知道的另一種方法是通過在構造函數中初始化對象並將它們傳遞給類中的私有變量。然後我會更新所有的對象,無論我是否想要更新所有對象。
void Update()
{
//do something for Box
//do the same for Square
//do the same for Triangle
}
這將需要很多代碼,有時是不必要的。現在,有什麼辦法可以通過我想要的任何對象,並執行相同的代碼。例如,
void Update(Object randomObject)
{
//do something for the randomObject whether its Square, Box or Triangle
}
爲什麼在每個類中都沒有Update方法?那麼每個實例都可以自行更新?或者從一個強制每個派生類實現一個Update方法的抽象基類派生三個類?你的方法似乎不是非常面向對象,但你需要提供更多的上下文。這個班可以更新Box a Square或Triangle? – Steve 2014-12-07 13:32:28
它是一個檢測這些對象與玩家之間碰撞的類。現在,我在一個類中有一個函數,它可以檢測所有這些對象之間的碰撞。問題是我必須爲每個對象編寫相同的代碼3次,因爲這些對象不是同一類型,我不能將它全部放入一個代碼中,並請求傳遞一個對象。我希望我解釋它,這真的很難。無論如何,我在尋找的是一個可以作爲參數傳遞的通用對象,我可以參考Square,Triangle或Box,無論我需要什麼。 – 2014-12-07 13:41:25