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

Объясните как работает this -> и -> - C++

Восстановить пароль Регистрация
 
wizzzi
0 / 0 / 0
Регистрация: 21.06.2012
Сообщений: 12
25.06.2012, 17:10     Объясните как работает this -> и -> #1
Как написано в книжке this - это указатель на экземпляр класса.
Что происходит в данных выражениях:
1.
C++
1
i = this -> a -> b -> c;
2.
C++
1
this -> a -> b = 0;
3.
C++
1
this -> a -> b = c ->d;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2012, 17:10     Объясните как работает this -> и ->
Посмотрите здесь:

Объясните, как работает программа C++
C++ объясните как это работает
Объясните как работает _getch() со стрелками C++
Объясните как работает программа C++
qsort объясните как работает C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
T2skler
 Аватар для T2skler
50 / 50 / 1
Регистрация: 16.05.2012
Сообщений: 231
25.06.2012, 17:28     Объясните как работает this -> и -> #2
Цитата Сообщение от wizzzi Посмотреть сообщение
Как написано в книжке this - это указатель на экземпляр класса.
Что происходит в данных выражениях:
1.
C++
1
i = this -> a -> b -> c;
2.
C++
1
this -> a -> b = 0;
3.
C++
1
this -> a -> b = c ->d;
Во всех 3-х случаях обращение к переменным. По сути -> операция разыменовывания указателя. a, b, c - ссылки на объекты.
wizzzi
0 / 0 / 0
Регистрация: 21.06.2012
Сообщений: 12
25.06.2012, 17:40  [ТС]     Объясните как работает this -> и -> #3
но там же еще присваивание есть, значит мы что то получаем?
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
25.06.2012, 18:26     Объясните как работает this -> и -> #4
Для определения текущего объекта класса адрес этого объекта всегда передается функции-члену как скрытый первый аргумент. Соответственно внутри функции, когда нужно узнать, какой именно объект является текущим, используется этот указатель. Всякий раз, когда функция обращается к другому члену класса, не называя имени его объекта явно, компилятор считает, что он является членом этого (this) объекта. При желании можно явно обращаться к членам этого объекта, используя ключевое слово this.
Независимо от того, добавите ли вы оператор this-> в тело функции явно или нет, результат будет одинаков.
Объект, для которого вызывается функция-член, называется "текущим", и все имена членов, записанные в сокращенном виде внутри функции-члена, считаются членами текущего объекта. Другими словами, сокращенное обращение к членам класса интерпретируется как обращение к членам текущего объекта.
T2skler
 Аватар для T2skler
50 / 50 / 1
Регистрация: 16.05.2012
Сообщений: 231
25.06.2012, 18:34     Объясните как работает this -> и -> #5
Цитата Сообщение от wizzzi Посмотреть сообщение
но там же еще присваивание есть, значит мы что то получаем?
Да, конечно. Мы получаем какое-либо значение, но вот каким оно будет зависит от того к типам каких переменных мы обращаемся. Возможно там вообще собственно писанный класс, который возвращает то, что мы пропишем ему возвращать. Уточняйте.
Yandex
Объявления
25.06.2012, 18:34     Объясните как работает this -> и ->
Ответ Создать тему
Опции темы

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