Итак, Node НЕ является именем вашего массива. Это имя определенного пользователем типа, который должен содержать массив. Однако ваш узел не содержит массив.Он содержит одно транспортное средство с именем a_v. Я предполагаю, что a_v должен представлять собой Массив транспортных средств. Поэтому вам нужно выделить массив. Что-то вроде этого:
struct Node {
Vehicle a_v[AMOUNT];
};
Если вы не знаете, во время компиляции, как большой Вы хотите, чтобы ваши массивы быть, то они должны быть динамически распределяемой, например:
struct Node {
Vehicle* a_v;
Node() {
a_v = new Vehicle[AMOUNT];
}
};
Если это динамически выделено, то оно также должно быть высвобождено:
struct Node {
Vehicle* a_v;
Node() {
a_v = new Vehicle[AMOUNT];
}
~Node() {
delete[] a_v;
}
};
и если она выделяется динамически, вам необходимо добавить положения для копирования или отключить копирование:
struct Node {
Vehicle* a_v;
Node() {
a_v = new Vehicle[AMOUNT];
}
~Node() {
delete[] a_v;
}
// Disable copies (with C++11 support):
Node(const Node&) = delete;
Node& operator=(const Node&) = delete;
// Disable copies (without C++11 support) by making them private and not defining them.
private:
Node(const Node&);
Node& operator=(const Node&);
};
Тогда получить доступ к одному из автомобилей, Вы должны были бы сделать так, как это:
Node n; // Declare a node, which contains an array of Vehicles
n.a_v[cont] = v; // Copy a Vehicle into the array of Vehicles
Заметим, однако, что если объявить экземпляр узла в этой функции, то она является локальной и он исчезнет из сферы действия, как только ваша функция закончится. Вам нужно объявить экземпляр Node в качестве члена вашей таблицы, если вы хотите, чтобы он продолжал проходить вызов функции.
class Table
{
private:
Node n;
};
Наконец, как и другие, я настоятельно рекомендую вам прочитать книгу на C++ для изучения C++. Мои личные рекомендации: this book (5-е издание, не покупайте 6-й или 7-й - автор этих изданий ужасен).
'Узел' - это не массив, это даже не переменная, это тип. Вы можете * использовать * тип для * объявлять * массив или переменную, но сам по себе тип не является массивом или переменной. Вам нужно понять эти понятия. – john