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

Прокоментируйте пару строк - C++

Восстановить пароль Регистрация
 
Stenl1
1 / 1 / 0
Регистрация: 01.12.2009
Сообщений: 233
13.07.2011, 20:28     Прокоментируйте пару строк #1
Код
bool operator!=(const String &right) const
{
    return !( *this == right ); //Что в этом случае возвращает return
                                //и как  вообще работает *this 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2011, 20:28     Прокоментируйте пару строк
Посмотрите здесь:

C++ Проверьте листинг (пару строк)
пару строк кода с Delphi на C++ C++
C++ Объяснить пару строк!
C++ Написал программу на С++, надо переделать на С (пару строк!)
C++ Прокоментируйте код
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.07.2011, 20:31     Прокоментируйте пару строк #2
Цитата Сообщение от Stenl1 Посмотреть сообщение
//Что в этом случае возвращает return
булево значение - true/false

Цитата Сообщение от Stenl1 Посмотреть сообщение
//и как вообще работает *this
учебник открой
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
13.07.2011, 20:36     Прокоментируйте пару строк #3
Stenl1,

Цитата Сообщение от Stenl1 Посмотреть сообщение
как *вообще работает *this
this - специальный указатель, который автоматом передается любому методу при его вызове и указывает на объект, инициирующий данный вызов. Ничего собственно сложного
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
13.07.2011, 20:39     Прокоментируйте пару строк #4
Цитата Сообщение от nameless Посмотреть сообщение
this - специальный указатель, который автоматом передается любому методу
Забыли про static методы.
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
13.07.2011, 20:42     Прокоментируйте пару строк #5
Цитата Сообщение от asics Посмотреть сообщение
Забыли про static методы.
Верно, спасибо, что поправили.
Stenl1
1 / 1 / 0
Регистрация: 01.12.2009
Сообщений: 233
13.07.2011, 21:20  [ТС]     Прокоментируйте пару строк #6
this - специальный указатель, который автоматом передается любому методу при его вызове и указывает на объект, инициирующий данный вызов.
Какому методу в данном случае?
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
13.07.2011, 21:24     Прокоментируйте пару строк #7
Stenl1, А это разве не очевидно? Извилины хоть немного напрягите.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
13.07.2011, 22:17     Прокоментируйте пару строк #8
//Что в этом случае возвращает return
Сравниваются два объекта типа String(очевидно), и возвращается противоположный проверке на равенство результат. Т.е. оператор "не равно" реализован через оператор "равно"
//и как вообще работает *this
this это указатель на вызывающий объект.
Например:
C++
1
2
3
String s1 = "abc";
String s2 = "123";
if(s1 != s2) ... // s1 это и есть тот самый *this
чтобы было более понятно можно записать последнюю строку в функциональной форме
C++
1
if(s1.operator!=(s2)) ... // s1 - *this, s2 - right
An1ka
65 / 70 / 2
Регистрация: 30.06.2011
Сообщений: 176
14.07.2011, 00:04     Прокоментируйте пару строк #9
Цитата Сообщение от Stenl1 Посмотреть сообщение
и как вообще работает *this
this - указатель на объект класса. Он передается, чтобы метод знал с каким объектом класса он работает(какой объект вызвал данный метод) в данном случае.
Stenl1
1 / 1 / 0
Регистрация: 01.12.2009
Сообщений: 233
14.07.2011, 06:53  [ТС]     Прокоментируйте пару строк #10
какой объект вызвал данный метод
Я как понял operator !=
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2011, 16:22     Прокоментируйте пару строк
Еще ссылки по теме:

Создайте функцию, которая пару последовательных чисел Фибоначчи преобразует в следующую пару C++
C++ Поясните пожалуйста пару строк кода
Объяснить пару строк кода C++

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

Или воспользуйтесь поиском по форуму:
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1761 / 984 / 60
Регистрация: 29.03.2010
Сообщений: 2,975
14.07.2011, 16:22     Прокоментируйте пару строк #11
угу, только *this - в данном случае - это значение объекта, а не указатель на него.
т.е. this - указатель на объект класса, о котором идёт речь, а *this соответственно его значение.
Yandex
Объявления
14.07.2011, 16:22     Прокоментируйте пару строк
Ответ Создать тему
Опции темы

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