С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 27.03.2019
Сообщений: 4

Копирование вектора из класса в класс

18.04.2019, 18:09. Показов 1353. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть задание построить иерархию типов, где будет машина и пассажирский автомобиль.
При передаче вектора с одного класа в другой происходит ошибка: vector subscript out of range, line: 1733. Можете подсказать как правильно передать вектор и исправить эту ошибку?
Вот сам код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#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;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.04.2019, 18:09
Ответы с готовыми решениями:

Передача вектора из класса в класс?
Доброго времени суток! У меня возникла проблема в очень простой программе. Я передаю функции из класса board.cpp в класс test.cpp. У меня...

Копирование с класса в класс
Админы удалите топик, нечайно создал.... протупил..

Класс итератора для класса вектора
Необходимо реализовать собственный класс итератора для прохода по вектору, с перегрузкой оператора ++ - переход к следующему элементу и --...

4
 Аватар для Krokodil9798
330 / 145 / 56
Регистрация: 17.10.2015
Сообщений: 580
18.04.2019, 18:50
Средствами отладки пользоваться умеем?
Миниатюры
Копирование вектора из класса в класс  
0
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
18.04.2019, 19:01
Лучший ответ Сообщение было отмечено jail_ride5 как решение

Решение

jail_ride5, исправил, компилируется и немного работает, но это треш а не код, книжки читайте, чужие коды изучайте.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#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(N2, Num), Type(N1) {}
 
    void Set();
    void Get();
};
void Pass_Transport::Set() {
    Car::Set();
    Type.push_back("Legkovoe");
    Type.push_back("Bus");
    Type.push_back("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;
 
    Pass_Transport ts(Type, name, number);
    ts.Set();
    ts.Get();
 
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 27.03.2019
Сообщений: 4
18.04.2019, 20:21  [ТС]
Спасибо большое за помощь. Совсем недавно сел изучать С++, можете немного обьяснить почему треш?
0
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
18.04.2019, 20:36
Цитата Сообщение от jail_ride5 Посмотреть сообщение
можете немного обьяснить почему треш?
перекрытие имен, не понимание принципов ООП, незнание синтаксических конструкций, полное отсутствие ссылочной семантики, и т.д.
Цитата Сообщение от jail_ride5 Посмотреть сообщение
Совсем недавно сел изучать С++
Так может чего попроще писать будете? А то сразу в классы и наследование.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.04.2019, 20:36
Помогаю со студенческими работами здесь

Передача вектора структур из класса в другой класс
Здравствуйте форумчане, собсно есть два класса в первом создаётся и заполняется вектор структур(Prtotected),во втором(:Protected class1)...

Написать функцию для класса, возращающую данный из вектора обьектов класса по итератору вектора
День=добрый как написать функцию для класса возращающую данный из вектора обьектов класса по итератору вектора?? стока запроса: ...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени?
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

Заполнение вектора класса внутри самого класса
class A { private: int a; public: A() { a = 0; }; A get(vector &lt;A&gt;* vec)

Копирование вектора
В поставленной задаче нужно реализовать функцию, которой передаем вектор, где последующее в функции будет создан вектор, в котором будут...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru