說我有兩個的.cpp文件:oranges.cpp和basket.cpp。他們分別有orange
和basket
。我的main
程序生成許多baskets
,而這又產生了許多oranges
。所以基本上,main
會有很多對象Baskets
;和baskets
將有許多對象Oranges
。如果我在orange
中需要知道籃子顏色的功能,我該如何去尋找籃子的顏色?一個棘手的問題OOP我從來沒有得到我的頭周圍
orangle.cpp
class oranges
{
void whichColorBasket()
{
// get the color of the basket the orange is in...?
}
}
basket.cpp
class basket
{
int color;
void basket()
{
for(int i = 0; i < 10; i++)
oranges *o = new oranges;
}
}
我知道我的語法可能不是完美的,但我怎麼會從一個函數訪問的basket
的數據成員在orange
(orange
是由basket
創建的對象)。
發送顏色參數不是一個選項,因爲太多的orange
s和basket
的顏色可能會在運行時更改。
我在某處讀到靜態函數可以做到這一點,但它們只有在它們位於相同的.cpp文件中時才起作用。
那麼,我該怎麼辦?
我在這裏看到耦合。這是你的問題。您可能想要將指向顏色的指針傳遞給您的橙色,但會破壞封裝。 – 2011-05-19 14:23:56