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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 12:45     Что это bool operator== (const CLASS&) const; #1
Что это?
C++
class CLASS
{
    public:
    bool operator== (const CLASS&) const;
    ...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
10.04.2013, 12:47     Что это bool operator== (const CLASS&) const; #2
Это оператор ==, чтоб можно было делать так
C++
1
2
CLASS a, b;
if (a == b) {}
Или интересует что-то другое?
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
10.04.2013, 12:53     Что это bool operator== (const CLASS&) const; #3
Перегруженный оператор который принимает два параметра, один неявный указaтель this и второй - явный объект класса CLASS. Модификатор const в конце объявления свидетельствует о том, что с принимаемые аргументы не будут модифицироваться.

Добавлено через 2 минуты
Ну и совсем очевидно - возвращаемый тип оператора - bool.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 12:57  [ТС]     Что это bool operator== (const CLASS&) const; #4
Kastaneda, xtorne21st, спасибо

пс: спасибки закончились, поэтому скажу спасибо немного позже
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
10.04.2013, 12:59     Что это bool operator== (const CLASS&) const; #5
Цитата Сообщение от xtorne21st Посмотреть сообщение
Модификатор const в конце объявления свидетельствует о том, что с принимаемые аргументы не будут модифицироваться.
Нет, в этом случае const говорит о том, что в методе не будут меняться члены класса (т.е. объекта *this). Разрешается изменение членов с квалификатором mutable.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 12:59  [ТС]     Что это bool operator== (const CLASS&) const; #6
Цитата Сообщение от Kastaneda Посмотреть сообщение
Это оператор ==, чтоб можно было делать так
C++
1
2
CLASS a, b;
if (a == b) {}
Или интересует что-то другое?
а что с чем сравнивается? данные в классе?
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
10.04.2013, 13:02     Что это bool operator== (const CLASS&) const; #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';
}
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 13:02  [ТС]     Что это bool operator== (const CLASS&) const; #8
Вернее чем могут отличатся два этих обьекта?
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
10.04.2013, 13:03     Что это bool operator== (const CLASS&) const; #9
Цитата Сообщение от programina Посмотреть сообщение
а что с чем сравнивается? данные в классе?
То, что опишите в теле оператора то и будет сравниваться.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
10.04.2013, 13:03     Что это bool operator== (const CLASS&) const; #10
Цитата Сообщение от programina Посмотреть сообщение
а что с чем сравнивается? данные в классе?
что внутри оператора == напишешь, то и будет сравниваться. Можно вообще захардкодить
C++
1
return false;
тогда любое подобное сравнение
C++
1
if (a == b) {}
всегда будет ложно.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 13:05  [ТС]     Что это bool operator== (const CLASS&) const; #11
xtorne21st, спасибо

Добавлено через 55 секунд
Kastaneda, спасибо
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
10.04.2013, 13:08     Что это bool operator== (const CLASS&) const; #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;  // одинаковый язык - одинаковая раса
}
Ну вот, перегружай как хочешь.
Kastaneda
10.04.2013, 13:12
  #13

Не по теме:

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

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

SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
10.04.2013, 13:16     Что это bool operator== (const CLASS&) const; #14
Цитата Сообщение от Kastaneda Посмотреть сообщение
Не по теме:
как ты ловко всех поделил
Кликните здесь для просмотра всего текста

Не по теме:

что за няшка?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2013, 13:27     Что это bool operator== (const CLASS&) const;
Еще ссылки по теме:

C++ error: invalid operands of types 'const int*' and 'const int*' to binary 'operator+'
C++ int const * const foo(const int* param) const - разъясните значение квалификаторов
C++ Operator[] и const map

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

Или воспользуйтесь поиском по форуму:
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 13:27  [ТС]     Что это bool operator== (const CLASS&) const; #15
Цитата Сообщение от SummerRain;
но может быть ты считаешь, что все люди равны независимо от пола и цвета кожи
точно!

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

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

Не по теме:


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

Не по теме:

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

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


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

Yandex
Объявления
10.04.2013, 13:27     Что это bool operator== (const CLASS&) const;
Ответ Создать тему
Опции темы

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