Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
wizzzi
0 / 0 / 0
Регистрация: 21.06.2012
Сообщений: 12
#1

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

25.06.2012, 17:10. Просмотров 720. Ответов 4
Метки нет (Все метки)

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

Объясните, как работает программа - C++
программа по трем введеным числам определяет и выводит на экран число имеющее в составе наибольше едениц. Пожалуйста, объясните подробно...

Объясните, как работает программа - C++
Поясните пожалуйста чайнику! Объясните плиз как работает программа, то есть что значит "**" и остальные строки плиз очень прошу!!!! ...

объясните как работает программа - C++
A в степени K, как работает эта программа, за что отвечают m и s ? #include "stdafx.h" #include "iostream" using namespace std; ...

Объясните как работает программа - C++
Если символ: не пробел, не новая строка, не табуляция. То in присваивается no(все слова). Дальше я вообще не понял как программа работает....

объясните как это работает - C++
#include <iostream> #include <algorithm> using namespace std; long func (long * arr, int length) { return...

Объясните как работает рекурсия - C++
#include <iostream> #include <iomanip> using namespace std; void print(int a, int b); int main() { print(0,...

4
T2skler
50 / 50 / 1
Регистрация: 16.05.2012
Сообщений: 231
25.06.2012, 17:28 #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 - ссылки на объекты.
0
wizzzi
0 / 0 / 0
Регистрация: 21.06.2012
Сообщений: 12
25.06.2012, 17:40  [ТС] #3
но там же еще присваивание есть, значит мы что то получаем?
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
25.06.2012, 18:26 #4
Для определения текущего объекта класса адрес этого объекта всегда передается функции-члену как скрытый первый аргумент. Соответственно внутри функции, когда нужно узнать, какой именно объект является текущим, используется этот указатель. Всякий раз, когда функция обращается к другому члену класса, не называя имени его объекта явно, компилятор считает, что он является членом этого (this) объекта. При желании можно явно обращаться к членам этого объекта, используя ключевое слово this.
Независимо от того, добавите ли вы оператор this-> в тело функции явно или нет, результат будет одинаков.
Объект, для которого вызывается функция-член, называется "текущим", и все имена членов, записанные в сокращенном виде внутри функции-члена, считаются членами текущего объекта. Другими словами, сокращенное обращение к членам класса интерпретируется как обращение к членам текущего объекта.
0
T2skler
50 / 50 / 1
Регистрация: 16.05.2012
Сообщений: 231
25.06.2012, 18:34 #5
Цитата Сообщение от wizzzi Посмотреть сообщение
но там же еще присваивание есть, значит мы что то получаем?
Да, конечно. Мы получаем какое-либо значение, но вот каким оно будет зависит от того к типам каких переменных мы обращаемся. Возможно там вообще собственно писанный класс, который возвращает то, что мы пропишем ему возвращать. Уточняйте.
0
25.06.2012, 18:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2012, 18:34
Привет! Вот еще темы с ответами:

Объясните, как работает программа - C++
объясните как работает программа #include <iostream> #include <conio.h> using namespace std; bool Р(int n) { for (int i =...

Объясните как работает программа - C++
Цель задачи была: Возведение X в 59 степень за самое малое количество шагов. 1. Ввод (X); 2. X2 = X*X; 3. X4 = X2*X2; ...

qsort объясните как работает - C++
Объясните в подробностях как работает данная функция сортировки и как её использовать. К примеру если надо просортировать данный масив: ...

Объясните как работает код - C++
можете подробно объяснить как работают программы. 1 #include<iostream> #include<cmath> using namespace std; int main() ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru