@alebastr5

Как создать динамический массив динамических объектов?

Физически задача стоит так:
есть узел который состоит из разных деталей, количество деталей в узле может быть разным;
из узлов собирается агрегат, количество узлов в агрегате может быть разным.
Не могу додуматься как реализовывать программно?
Создал класс (узел) с динамическим массивом (детали) не понятно как из узлов теперь создать агрегат. Есть мысль сначала инициализировать объекты (узлы) задав количество и названия деталей, а потом их засунуть в динамический массив (вектор), но не понятно как? Ведь размер каждого узла будет разный из-за разного количества деталей. Есть идеи как такое можно реализовать?
  • Вопрос задан
  • 295 просмотров
Решения вопроса 1
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Самый простой вариант решения вашей задачи. Классов вроде Detail и Node может быть сколько угодно, главное, чтобы они реализовывали соотвествующие интерфейсы.
struct IDetail {};
struct INode {};

struct Detail : public IDetail
{ };

struct Node : public INode
{
    std::vector<IDetail*> details;
};

struct Mechanism
{
    std::vector<INode*> nodes;
};
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@vilgeforce
Раздолбай и программист
Делаете базовый класс для деталей, делаете конкретные детали его потомками. Потом создаете вектора:
std::vector v; Пойдет?
Ответ написан
@tugo
Посмотрите на паттерн Компоновщик
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы