Форум программистов, компьютерный форум CyberForum.ru

Как перегрузить оператор - C++

Восстановить пароль Регистрация
 
 
alexSo94
140 / 4 / 1
Регистрация: 24.02.2013
Сообщений: 46
25.04.2013, 16:20     Как перегрузить оператор #1
Вот написал функцию поиска студента по номеру группы. STL list
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
void find()
{
    setlocale( LC_ALL,"Russian" );
    if (students.empty()) cout<<"Нет студентов в списке";
    else
    {
int number;
cout<<"Введите искомую группу"<<endl;
cin>>number;
list <CStudent>::iterator location = find(students.begin(),students.end(),number);
if (location==students.end())
    cout<<"Ничего не найдено"<<endl;
else
{
    cout<<"Результат:"<<endl;
    if (location==students.begin())
        cout<<"Студент с заданной группой найден:"<<number<<endl;
    location->output();
}
    }
 
 
 
}
Дальше не фига не могу перегрузить оператор. Обьясните кто нибудь
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
25.04.2013, 18:51     Как перегрузить оператор #21
alexSo94, ну вот как-то так, не компилил, если что-то вылезет скажи)

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
void find()
{
    setlocale( LC_ALL,"Russian" );
 
    bool flag(false);
    if (students.empty()) 
        cout<<"Нет студентов в списке";
    else
    {
        number_type number = G1;
        cout<<"Введите искомую группу"<<endl;
 
        list <CStudent>::iterator location(students.begin());
 
        while(location != students.end()){
            if(op.number_gender() == number){
                flag = true;
                cout<<"Результат:"<<endl;
                cout<<"Студент с заданной группой найден:"<<number<<endl;
                location->output();
            }
        }
 
        if (!flag)
            cout<<"Ничего не найдено"<<endl;
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexSo94
140 / 4 / 1
Регистрация: 24.02.2013
Сообщений: 46
25.04.2013, 18:57  [ТС]     Как перегрузить оператор #22
Цитата Сообщение от yoghurt92 Посмотреть сообщение
alexSo94, ну вот как-то так, не компилил, если что-то вылезет скажи)

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
void find()
{
    setlocale( LC_ALL,"Russian" );
 
    bool flag(false);
    if (students.empty()) 
        cout<<"Нет студентов в списке";
    else
    {
        number_type number = G1;
        cout<<"Введите искомую группу"<<endl;
 
        list <CStudent>::iterator location(students.begin());
 
        while(location != students.end()){
            if(op.number_gender() == number){
                flag = true;
                cout<<"Результат:"<<endl;
                cout<<"Студент с заданной группой найден:"<<number<<endl;
                location->output();
            }
        }
 
        if (!flag)
            cout<<"Ничего не найдено"<<endl;
    }
}
Ругаеться на op
C++
1
2
c:\users\sany\documents\visual studio 2010\projects\newstudent\newstudent\newstudent.cpp(114): error C2065: op: необъявленный идентификатор
1>c:\users\sany\documents\visual studio 2010\projects\newstudent\newstudent\newstudent.cpp(114): error C2228: выражение слева от ".number_gender" должно представлять класс, структуру или объединение
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
25.04.2013, 19:01     Как перегрузить оператор #23
alexSo94,

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
void find()
{
    setlocale( LC_ALL,"Russian" );
 
    bool flag(false);
    if (students.empty()) 
        cout<<"Нет студентов в списке";
    else
    {
        number_type number = G1;
        cout<<"Введите искомую группу"<<endl;
 
        list <CStudent>::iterator location(students.begin());
 
        while(location != students.end()){
            if(location -> number_gender() == number){
                flag = true;
                cout<<"Результат:"<<endl;
                cout<<"Студент с заданной группой найден:"<<number<<endl;
                location->output();
            }
        }
 
        if (!flag)
            cout<<"Ничего не найдено"<<endl;
    }
}
alexSo94
140 / 4 / 1
Регистрация: 24.02.2013
Сообщений: 46
25.04.2013, 19:07  [ТС]     Как перегрузить оператор #24
Цитата Сообщение от yoghurt92 Посмотреть сообщение
alexSo94,

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
void find()
{
    setlocale( LC_ALL,"Russian" );
 
    bool flag(false);
    if (students.empty()) 
        cout<<"Нет студентов в списке";
    else
    {
        number_type number = G1;
        cout<<"Введите искомую группу"<<endl;
 
        list <CStudent>::iterator location(students.begin());
 
        while(location != students.end()){
            if(location -> number_gender() == number){
                flag = true;
                cout<<"Результат:"<<endl;
                cout<<"Студент с заданной группой найден:"<<number<<endl;
                location->output();
            }
        }
 
        if (!flag)
            cout<<"Ничего не найдено"<<endl;
    }
}
Блин не работает
Миниатюры
Как перегрузить оператор  
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
25.04.2013, 19:12     Как перегрузить оператор #25
alexSo94, тупонул

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
void find()
{
    setlocale( LC_ALL,"Russian" );
 
    bool flag(false);
    if (students.empty()) 
        cout<<"Нет студентов в списке";
    else
    {
        number_type number = G1;
        cout<<"Введите искомую группу"<<endl;
 
        list <CStudent>::iterator location(students.begin());
 
        while(location != students.end()){
            if(location -> number_gender() == number){
                flag = true;
                cout<<"Результат:"<<endl;
                cout<<"Студент с заданной группой найден:"<<number<<endl;
                location->output();
            }
 
            ++location;
        }
 
        if (!flag)
            cout<<"Ничего не найдено"<<endl;
    }
}
alexSo94
140 / 4 / 1
Регистрация: 24.02.2013
Сообщений: 46
25.04.2013, 19:17  [ТС]     Как перегрузить оператор #26
yoghurt92, спасибо тебе огромное. На досуге буду подробно разбирать итераторы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2013, 19:19     Как перегрузить оператор
Еще ссылки по теме:

C++ Как перегрузить оператор ввода из файла?
C++ Как перегрузить оператор разыменования *
C++ Как правильно перегрузить оператор [] =

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

Или воспользуйтесь поиском по форуму:
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
25.04.2013, 19:19     Как перегрузить оператор #27
alexSo94, да сам недавно их прошел, удачи)
Yandex
Объявления
25.04.2013, 19:19     Как перегрузить оператор
Ответ Создать тему
Опции темы

Текущее время: 18:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru