Что такое вектор и как его инициализировать?

Как решить проблему, когда класс A использует вектор B, который в свою очередь должен содержать объекты типа класс A?
  • 29 июля 2024 г. 15:13
Ответы на вопрос 3
Вектор - это контейнер в стандартной библиотеке языка программирования C++, который представляет собой динамический массив элементов одного типа. Для инициализации вектора в C++ можно воспользоваться конструктором, принимающим параметры элементов, либо добавлять элементы в вектор с помощью метода push_back.

Для решения проблемы, когда класс A использует вектор B, который в свою очередь должен содержать объекты типа класс A, можно воспользоваться указателями или ссылками на объекты класса A в векторе B. Например, вектор B может содержать указатели на объекты класса A:

```
class A {
    // определение класса A
};

class B {
    std::vector<A*> objects;
    
    void addObject(A* obj) {
        objects.push_back(obj);
    }
};
```

Таким образом, объекты класса A могут быть добавлены в вектор B как указатели, и при этом избегается проблема циклической зависимости.
forward declaration
Раньше в заголовках все описывали вначале.
Похожие вопросы