Массив классов в С++

Рейтинг: 0Ответов: 1Опубликовано: 01.02.2011

Доброго времени суток, уважаемые эксперты. Я только встал на тропу войны с незнанием С++, поэтому прошу отнестись со снисхождением, если вопрос дурацкий.
Суть проблемы следующая: класс "Изделие" может состоять из 1 или нескольких классов "СбЕдиница", и/или 1 или нескольких классов "Деталь". Класс "СбЕдиница", в свою очередь состоит из 1 или нескольких классов "Деталь".
Первое что пришло на ум, создать, например, в классе "СбЕдиница" свойство-массив из классов "Деталь". Но эта идея у меня не удалась. Я чего то недомудрил, видимо, с конструкторами, сидел долго, а теперь вконец запутавшись, взываю к вашей помощи: Как правильно организвовать массив классов. Если можно малюсенький примерчик бы.. )

Заранее благодарен за дельный совет )

Ответы

▲ 3Принят

Как я понял, вам потребуется довольно простая структура классов (весь этот прием называется агрегацией). Возникнут проблемы с понимаем, то пишите - уточню, отвечу.

class Деталь
{
};

class СбЕдиница
{
    Деталь* pДеталь;
    public:
    СбЕдиница(int n)
    {
        pДеталь = new Деталь[n];
    }
};

class Изделие
{
    Деталь* pДеталь;
    СбЕдиница* pСбЕдиница;
    public:
    Изделие(int nДет, int nСбЕд)
    {
        pДеталь = new Деталь[nДет];
        pСбЕдиница= new СбЕдиница[nСбЕд];
    }
};