Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/65: Рейтинг темы: голосов - 65, средняя оценка - 4.92
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
1

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

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

Author24 — интернет-сервис помощи студентам
Что это?
C++
class CLASS
{
    public:
    bool operator== (const CLASS&) const;
    ...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2013, 12:45
Ответы с готовыми решениями:

как правильно понять тип bool ? bool true(const string &str) и что дает это значение ?
задам может глупый вопрос, но прошу ответить. как правильно понять тип bool ? 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; ix++) cout &lt;&lt;...

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

14
5232 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
10.04.2013, 12:47 2
Это оператор ==, чтоб можно было делать так
C++
1
2
CLASS a, b;
if (a == b) {}
Или интересует что-то другое?
1
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
10.04.2013, 12:53 3
Перегруженный оператор который принимает два параметра, один неявный указaтель this и второй - явный объект класса CLASS. Модификатор const в конце объявления свидетельствует о том, что с принимаемые аргументы не будут модифицироваться.

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

пс: спасибки закончились, поэтому скажу спасибо немного позже
0
5232 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
10.04.2013, 12:59 5
Цитата Сообщение от xtorne21st Посмотреть сообщение
Модификатор const в конце объявления свидетельствует о том, что с принимаемые аргументы не будут модифицироваться.
Нет, в этом случае const говорит о том, что в методе не будут меняться члены класса (т.е. объекта *this). Разрешается изменение членов с квалификатором mutable.
1
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 12:59  [ТС] 6
Цитата Сообщение от Kastaneda Посмотреть сообщение
Это оператор ==, чтоб можно было делать так
C++
1
2
CLASS a, b;
if (a == b) {}
Или интересует что-то другое?
а что с чем сравнивается? данные в классе?
0
интересующийся
311 / 282 / 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
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 13:02  [ТС] 8
Вернее чем могут отличатся два этих обьекта?
0
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
10.04.2013, 13:03 9
Цитата Сообщение от programina Посмотреть сообщение
а что с чем сравнивается? данные в классе?
То, что опишите в теле оператора то и будет сравниваться.
1
5232 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
10.04.2013, 13:03 10
Цитата Сообщение от programina Посмотреть сообщение
а что с чем сравнивается? данные в классе?
что внутри оператора == напишешь, то и будет сравниваться. Можно вообще захардкодить
C++
1
return false;
тогда любое подобное сравнение
C++
1
if (a == b) {}
всегда будет ложно.
0
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.04.2013, 13:05  [ТС] 11
xtorne21st, спасибо

Добавлено через 55 секунд
Kastaneda, спасибо
0
328 / 327 / 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
328 / 327 / 92
Регистрация: 16.12.2012
Сообщений: 544
10.04.2013, 13:16 14
Цитата Сообщение от Kastaneda Посмотреть сообщение
Не по теме:
как ты ловко всех поделил
Кликните здесь для просмотра всего текста

Не по теме:

что за няшка?

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

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

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

Не по теме:


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

Не по теме:

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

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

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

0
10.04.2013, 13:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2013, 13:27
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru