Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
266 / 81 / 18
Регистрация: 05.04.2018
Сообщений: 1,102
Записей в блоге: 1
1

Вызов метода Setinfo для вектора

23.04.2018, 09:40. Показов 1486. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет. Векторы только начал проходить, помогите разобраться. На 61 строке ошибка "SetInfo' was not declared in this scope"; Не пойму почему?
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <vector>
using namespace std;
 
class Worker
{
private:
    int id;
    string sm;
    string name;
    string patronymic;
    string post;
    int hours;
    double payhour;
    double salary;
    
public:
    Worker()
    {
        id = hours = payhour = salary = 0;
    }
    
    Worker(int id, string sm, string name, string patronymic, string post, int hours, double payhour, double salary)
    {
        this->id = id;
        this->sm = sm;
        this->name = name;
        this->patronymic = patronymic;
        this->post = post;
        this->hours = hours;
        this->payhour = payhour;
        this->salary = salary;
    }
    
    void SetInfo();
    void GetInfo();
    void ListFunc();
};
 
int main()
{
    setlocale(LC_ALL, "ru");
    
    char action;
    Worker obj;
    vector <Worker> w;
    
    do
    {   
        cout << "Choose action\n";
        obj.ListFunc();
        cout << ": ";
        cin >> action;
        
        switch(action)
        {
            case 'n':
            {
                w.push_back(SetInfo());
                
                break;
            }
            case 'v':
            {
                cout << "\n\nWorker data\n" << endl;
                cout << "ID  Surname\tName\tPatronymic\tPost\th/pay\tHours\tSalary\n";
                cout << "--------------------------------------------------------------------------\n";
                
                for(int i = 0; i < w.size(); i++)
                    w[i].GetInfo();
 
                break;
            }
        }
        
        cout << endl << endl;
        
    }while(action != 'q');
    
    system("pause");
    return 0;
}
 
void Worker::SetInfo()
{
    cout << "\nEnter data \nID: ";
    cin >> id;
    cin.ignore();
    cout << "Surname: ";
    getline(cin, sm);
    cout << "Name: ";
    getline(cin, name);
    cout << "Patronymic: ";
    getline(cin, patronymic);
    cout << "Post: ";
    getline(cin, post);
    cout << "Number of hours: ";
    cin >> hours;
    cout << "Cost 1 hour: ";
    cin >> payhour;
    salary = hours * payhour;
}
 
void Worker::ListFunc()
{
    cout << "N - New worker" << endl;
    cout << "E - Edit data" << endl;
    cout << "F - Find worker" << endl;
    cout << "D - Delete data" << endl;
    cout << "S - Save to file" << endl;
    cout << "L - Load from file" << endl;
    cout << "V - Show all workers" << endl;
    cout << "C - Cort data" << endl;
    cout << "Q - Quit" << endl;
}
 
void Worker::GetInfo()
{
    cout << id << "  " << sm << "\t" << name << "\t " << patronymic << "\t" << post << "\t  " << payhour << "\t " << hours << "\t" << salary;
    cout << endl << endl;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.04.2018, 09:40
Ответы с готовыми решениями:

Вызов виртуального метода класса наследника из вектора
#include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; class A { public: ...

Вызов метода для объекта (ооп с++)
Доброе время суток! У меня есть класс class Player {...} есть объект Player user; Есть...

Вызов метода для всех созданных объектов
Создается несколько объектов класса. Как сделать, чтобы при уничтожении любого объекта, для всех...

Полиморфизм: вызов метода базового класса, переопределенного метода и нового метода
В базовом классе метод помечен как virtual. Насколько я понял из книги: override означает, что...

4
571 / 353 / 133
Регистрация: 15.09.2017
Сообщений: 1,239
23.04.2018, 09:51 2
Так Setinfo - это функция-член, она принадлежит объекту и не самостоятельна
0
266 / 81 / 18
Регистрация: 05.04.2018
Сообщений: 1,102
Записей в блоге: 1
23.04.2018, 10:01  [ТС] 3
Avaddon74, просто, если бы я объявил массив arr, то смог бы написать в функции for - arr[i].Setinfo(). А как тогда правильно сделать?
C++
1
w.push_back(obj.SetInfo());
- [Error] invalid use of void expression
так тоже не хочет.
0
571 / 353 / 133
Регистрация: 15.09.2017
Сообщений: 1,239
23.04.2018, 10:07 4
Лучший ответ Сообщение было отмечено Джон Кофи как решение

Решение

Джон Кофи, Так он же черным по белому пишет, функцию нельзя использовать так как она не возвращает значение, а в твоей строчке ожидается, что функция вернет какое-то значение, смотри логику своей программы

Добавлено через 3 минуты
Джон Кофи, Может так хотел:
C++
1
2
obj.SetInfo();
w.push_back(obj);
2
266 / 81 / 18
Регистрация: 05.04.2018
Сообщений: 1,102
Записей в блоге: 1
23.04.2018, 10:14  [ТС] 5
Avaddon74, дастиш фантастиш, работает! спасибо.
Тяжело все дается, тяжело...
0
23.04.2018, 10:14
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2018, 10:14
Помогаю со студенческими работами здесь

Ошибка в составлении метода для вектора
Есть задание Практика «Вектор» Создайте новый проект в Visual Studio. Выберите в качестве типа...

Вызов метода Contains() для свойста DbContext
Вновь взываю к помощи Гуру, просветите неразумного..( Итак, ситуация следующая: Entity Framework...

Вызов метода для объекта в таблице
Помогите разобраться пожалуйста. Допустим есть некоторый тип mytype, а в нем метод mymethod....

Вызов метода для создания панели
Здравствуйте. Есть класс (создание панели с параметрами) и кнопка, по нажатию которой эта панель...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Распознавание изображений (компьютерное зрение) на C++
InfoMaster 20.01.2025
Введение в компьютерное зрение и основы работы с изображениями Компьютерное зрение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, позволяющую. . .
Какой язык программировани­я лучший для разработки нейронных сетей
InfoMaster 20.01.2025
В современном мире технологий искусственные нейронные сети становятся неотъемлемой частью множества инновационных решений, от распознавания речи до автоматического управления транспортными. . .
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru