Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
programina
2049 / 604 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
#1

Что это bool operator== (const CLASS&) const;

10.04.2013, 12:45. Просмотров 2814. Ответов 14
Метки нет (Все метки)

Что это?
C++
class CLASS
{
    public:
    bool operator== (const CLASS&) const;
    ...

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 12:45
Ответы с готовыми решениями:

как правильно понять тип bool ? bool true(const string &str) и что дает это значение ?
задам может глупый вопрос, но прошу ответить. как правильно понять тип bool...

char operator[](unsigned short offset) const; // что означает const?
Собстенно вопрос уже озвучен :).

ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка?
void Array::getArray() // вывод массива { for (int ix = 0; ix &lt; size;...

Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration?
Пытаюсь скомпилировать программу пишет friend ostrem&amp; operator &lt;&lt;(ostream&amp;...

error: invalid operands of types 'const int*' and 'const int*' to binary 'operator+'
Что означает ошибка в 8 строчке error: invalid operands of types 'const int*'...

14
Kastaneda
Jesus loves me
Эксперт С++
4763 / 2966 / 342
Регистрация: 12.12.2009
Сообщений: 7,531
Записей в блоге: 2
Завершенные тесты: 1
10.04.2013, 12:47 #2
Это оператор ==, чтоб можно было делать так
C++
1
2
CLASS a, b;
if (a == b) {}
Или интересует что-то другое?
1
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
10.04.2013, 12:53 #3
Перегруженный оператор который принимает два параметра, один неявный указaтель this и второй - явный объект класса CLASS. Модификатор const в конце объявления свидетельствует о том, что с принимаемые аргументы не будут модифицироваться.

Добавлено через 2 минуты
Ну и совсем очевидно - возвращаемый тип оператора - bool.
1
programina
2049 / 604 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 12:57  [ТС] #4
Kastaneda, xtorne21st, спасибо

пс: спасибки закончились, поэтому скажу спасибо немного позже
0
Kastaneda
Jesus loves me
Эксперт С++
4763 / 2966 / 342
Регистрация: 12.12.2009
Сообщений: 7,531
Записей в блоге: 2
Завершенные тесты: 1
10.04.2013, 12:59 #5
Цитата Сообщение от xtorne21st Посмотреть сообщение
Модификатор const в конце объявления свидетельствует о том, что с принимаемые аргументы не будут модифицироваться.
Нет, в этом случае const говорит о том, что в методе не будут меняться члены класса (т.е. объекта *this). Разрешается изменение членов с квалификатором mutable.
1
programina
2049 / 604 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 12:59  [ТС] #6
Цитата Сообщение от Kastaneda Посмотреть сообщение
Это оператор ==, чтоб можно было делать так
C++
1
2
CLASS a, b;
if (a == b) {}
Или интересует что-то другое?
а что с чем сравнивается? данные в классе?
0
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
10.04.2013, 13:02 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
class CLASS
{
    public:
    int int_field;
 
    bool operator== (const CLASS& rhs) const
    {
        return (this->int_field == rhs.int_field);
    }
};
 
int main()
{
    CLASS obj1, obj2;
    obj1.int_field = 10, obj2.int_field = 11;
 
    std::cout << std::boolalpha << (obj1 == obj2) << '\n';
}
1
programina
2049 / 604 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 13:02  [ТС] #8
Вернее чем могут отличатся два этих обьекта?
0
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
10.04.2013, 13:03 #9
Цитата Сообщение от programina Посмотреть сообщение
а что с чем сравнивается? данные в классе?
То, что опишите в теле оператора то и будет сравниваться.
1
Kastaneda
Jesus loves me
Эксперт С++
4763 / 2966 / 342
Регистрация: 12.12.2009
Сообщений: 7,531
Записей в блоге: 2
Завершенные тесты: 1
10.04.2013, 13:03 #10
Цитата Сообщение от programina Посмотреть сообщение
а что с чем сравнивается? данные в классе?
что внутри оператора == напишешь, то и будет сравниваться. Можно вообще захардкодить
C++
1
return false;
тогда любое подобное сравнение
C++
1
if (a == b) {}
всегда будет ложно.
0
programina
2049 / 604 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 13:05  [ТС] #11
xtorne21st, спасибо

Добавлено через 55 секунд
Kastaneda, спасибо
0
SummerRain
327 / 326 / 92
Регистрация: 16.12.2012
Сообщений: 544
10.04.2013, 13:08 #12
допустим есть класс

C++
1
2
3
4
5
6
7
class human {
    bool sex;  // мужской - true, женский - false (хаха, как же иначе?)
    int age;
    string race;
    language string;
    ...
};
можно сравнить все члены экземпляра класса в этом операторе

C++
1
2
3
bool operator== (const human& h) const {
    return sex == h.sex && age == h.age && race == h.race;
}
но может быть ты считаешь, что все люди равны независимо от пола и цвета кожи (как бы не так!)
и тебя интересует другой критерий равенства.
Ты хочешь разделить людей на низшую и высшую расу по знанию языка программирования:
низшая раса - это Delphi и PHP;
высшая раса - это, естественно, С++;
Поэтому

C++
1
2
3
bool operator== (const human& h) const {
    return language == h.language;  // одинаковый язык - одинаковая раса
}
Ну вот, перегружай как хочешь.
1
Kastaneda
10.04.2013, 13:12
  #13

Не по теме:

как ты ловко всех поделил

Кликните здесь для просмотра всего текста
Что это bool operator== (const CLASS&) const;

0
SummerRain
327 / 326 / 92
Регистрация: 16.12.2012
Сообщений: 544
10.04.2013, 13:16 #14
Цитата Сообщение от Kastaneda Посмотреть сообщение
Не по теме:
как ты ловко всех поделил
Кликните здесь для просмотра всего текста

Не по теме:

что за няшка?

1
programina
2049 / 604 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 13:27  [ТС] #15
Цитата Сообщение от SummerRain;
но может быть ты считаешь, что все люди равны независимо от пола и цвета кожи
точно!

SummerRain, спасибо за подробный ответ

Добавлено через 8 минут

Не по теме:


Цитата Сообщение от Kastaneda Посмотреть сообщение

Не по теме:

как ты ловко всех поделил

Кликните здесь для просмотра всего текста

:D
— ложись спать.
— не могу, снова кошмар приснится.

0
10.04.2013, 13:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2013, 13:27

int const * const foo(const int* param) const - разъясните значение квалификаторов
int const * const foo(const int* param) const ...

const& и const* в имени функции
Объясните пожалуйста что значит const&amp; и const* в имени и параметрах...

C2280 "bulb &bulb::operator =(const bulb &)": предпринята попытка ссылки на удаленную функцию
Есть некий класс моей реализации под названием bulb, когда я пытаюсь сделать...


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

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

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