Сложная проблема ООП, над которой я никогда не думал

Допустим, у меня есть два .cpp файлов: oranges.cpp и basket.cpp . У них есть классы оранжевый и корзина соответственно. Моя основная программа генерирует множество корзин , которые, в свою очередь, генерируют много апельсинов . Таким образом, в main будет много объектов из Baskets ; и корзины будут содержать много объектов Апельсинов . Если у меня есть функция в оранжевом , которой нужно знать цвет моей корзины, как мне найти цвет корзины?

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;
    }
}

Я знаю, что мой синтаксис может быть несовершенным, но как мне получить доступ к номеру данных корзины из функции в оранжевом ( оранжевый - объект, созданный корзина ).

Отправка параметра цвета не является вариантом, так как имеется слишком много оранжевых s, а цвет корзины может измениться во время выполнения.

​​Я где-то читал, что статические функции могут помочь, но они работают, только если они находятся в одном и том же файле .cpp .

Итак, что мне делать?

10
задан Mateen Ulhaq 23 May 2011 в 07:57
поделиться