Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
196 / 41 / 24
Регистрация: 24.02.2013
Сообщений: 223
1

Как перегрузить оператор?

25.04.2013, 16:20. Просмотров 2082. Ответов 26
Метки нет (Все метки)

Вот написал функцию поиска студента по номеру группы. 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();
}
    }
 
 
 
}
Дальше не фига не могу перегрузить оператор. Обьясните кто нибудь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2013, 16:20
Ответы с готовыми решениями:

Как перегрузить оператор<< и оператор>> ?
Доброго времени суток. Застрял на двух вопросах и не как не могу найти инфу которвя мне помогла бы...

Как перегрузить оператор >?
В задании нужно создать шаблон класса, который будет принимать массив целых, вещественных и дробей,...

Как перегрузить оператор =
ну там чтоб он например сложение делал или чтото другое

Как перегрузить оператор []?
вообщем есть класс class Point{ private: int color_id, state; public: //constructors ...

26
380 / 351 / 113
Регистрация: 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;
    }
}
0
196 / 41 / 24
Регистрация: 24.02.2013
Сообщений: 223
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" должно представлять класс, структуру или объединение
0
380 / 351 / 113
Регистрация: 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;
    }
}
0
196 / 41 / 24
Регистрация: 24.02.2013
Сообщений: 223
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;
    }
}
Блин не работает
0
Миниатюры
Как перегрузить оператор?  
380 / 351 / 113
Регистрация: 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;
    }
}
1
196 / 41 / 24
Регистрация: 24.02.2013
Сообщений: 223
25.04.2013, 19:17  [ТС] 26
yoghurt92, спасибо тебе огромное. На досуге буду подробно разбирать итераторы.
0
380 / 351 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
25.04.2013, 19:19 27
alexSo94, да сам недавно их прошел, удачи)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2013, 19:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как перегрузить оператор разыменования *
Как перегрузить оператор разыменования?

Как перегрузить оператор << в классе?
Всем привет, есть данный код: #include &quot;pch.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; #include...

Как перегрузить оператор ввода?
Как перегрузить оператор ввода? rational.h #define _Rational_h_ #include &lt;iostream&gt; ...

Как правильно перегрузить оператор [] =
вот например в классе хранится массив, и допустим я хочу елементу массива в этом классе присвоить...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.