Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2012, 14:00   #1
Стремящийся
Форумчанин
 
Аватар для Стремящийся
 
Регистрация: 01.11.2011
Сообщений: 172
По умолчанию Перегруженная операция !=

Всем привет!
Разбираюсь по книге с перегрузкой операций. Операция == объявлена в загноловочном файле как прототип, а реализация уже в классе. А вот операция != реализована в заголовочном файле и использует операцию ==. В книге написано, что это позволяет компилятору генерировать встроенные расширения operator !=, устарняя тем самым издержки на доп. вызовы функций. Не могли бы разъяснить что это значит.
[
bool operator !=(const Array &right) const
{
return ! ( *this==right )
}
]
Заранее благодарен.
Желание тысяча возможностей, нежелание - тысяча причин
Стремящийся вне форума Ответить с цитированием
Старый 26.03.2012, 15:25   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

this, используемый внутри функций класса является указателем на конкретный объект, который эту функцию использует в данный момент. Соответственно, *this - это сам объект.
Наконец, используем тот факт, что А != Б равносильно !(А == Б). Если *this (т.е. сам объект класса, левый аргумент) равен right (правый аргумент), возвращаем false, иначе - true.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 27.03.2012, 11:43   #3
Стремящийся
Форумчанин
 
Аватар для Стремящийся
 
Регистрация: 01.11.2011
Сообщений: 172
По умолчанию

Уважаемый Гром, огромное спасибо Вам за ответ, мне понятен механизм работы метода, мне непонятно: В книге написано, что это позволяет компилятору генерировать встроенные расширения operator !=, устарняя тем самым издержки на доп. вызовы функций. Не могли бы разъяснить что это значит.
Заранее спасибо!
Желание тысяча возможностей, нежелание - тысяча причин
Стремящийся вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
операция деления genia Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 09.03.2011 06:02
С++. Операция atof Blad47 Помощь студентам 5 17.10.2010 17:31
Операция в StringGrid grafgrial Общие вопросы Delphi 8 09.10.2010 16:09
Операция Ы SASHA50 Microsoft Office Excel 10 25.04.2008 12:38
Операция сдвига? SkyDreamer Общие вопросы C/C++ 3 10.10.2007 08:20