Тема: Копіювання вектора з класу в клас
Є завдання створити ієрархію типів, де буде машина та пасажирський транспорт. Коли копіюю вектор з класу машина в клас пасажирський транспорт відбувається помилка: vector subscript out of range, line: 1733.
Можете підказати як правильно передати вектор з класу в клас.
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Car {
protected:
vector<string> number;
vector<string> name;
public:
Car(vector<string>name , vector<string> number) {
this->name = name;
this->number = number;
};
void Set();
void Get();
void Add();
};
void Car::Set() {
number.push_back("1991");
number.push_back("0001");
number.push_back("2005");
name.push_back("Fiat");
name.push_back("Mercedes");
name.push_back("Audi");
}
void Car::Get() {
int numberSize = number.size();
int nameSize = name.size();
int i, j;
for (i = 0, j = 0; i < nameSize, j < numberSize; i++, j++) {
cout << "Name of car: " << name[j] << endl << "Number of car: " << number[i] << endl << endl;
}
}
void Car::Add() {
string name = "";
string number = "";
getline(cin, name);
getline(cin, number);
this->name.push_back(name);
this->number.push_back(number);
}
class Pass_Transport : public Car
{
protected:
vector<string> Type{};
public:
Pass_Transport(vector<string> N1, vector<string> N2, vector<string>Num) : Car(name, number)
{
Type = N1;
}
void Set();
void Get();
};
void Pass_Transport::Set() {
Type[0] = "Legkovoe";
Type[1] = "Bus";
Type[2] = "Gruzovik";
}
void Pass_Transport::Get() {
int i, j, k;
int numberSize = number.size();
int nameSize = name.size();
int typeSize = Type.size();
for (i = 0, j = 0, k = 0; i < nameSize, j < numberSize, k < typeSize; i++, j++, k++) {
cout << "Name of car: " << Car::name[j] << endl << "Number of car: " << Car::number[i] << "Type of car: " << Type[k] << endl << endl;
}
}
int main() {
vector<string> name;
vector<string> number;
vector<string>Type;
Car test(name, number);
test.Set();
test.Get();
Pass_Transport ts(Type,name,number);
ts.Set();
ts.Get();
system("pause");
return 0;
}