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

Что за оператор ->? - C++

Восстановить пароль Регистрация
 
fredwriter
7 / 7 / 1
Регистрация: 17.10.2009
Сообщений: 269
21.09.2011, 22:17     Что за оператор ->? #1
Здравствуйте, мой вопрос поместился в заголовок, но я всё же задам его и в сообщении: что за оператор ->?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2011, 22:17     Что за оператор ->?
Посмотрите здесь:

что выводит оператор C++
Что означает оператор -> ? C++
оператор -> что это? C++
C++ Что за оператор GO TO NEXT?
Что за оператор :: ? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.09.2011, 22:23     Что за оператор ->? #2
оператор доступа к мемберам объекта через указатель на объект
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.09.2011, 22:25     Что за оператор ->? #3
C++
1
2
3
4
SomeClass var1;
SomeClass *var2 = new SomeClass;
var1.someFunction();
var2 -> someFunction();
Простейший пример.
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
21.09.2011, 22:25     Что за оператор ->? #4
если объест создан статически, то используется "."
если динамически - "->"

надеюсь не ввожу в заблуждение
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.09.2011, 22:30     Что за оператор ->? #5
Цитата Сообщение от co6ak Посмотреть сообщение
если объест создан статически, то используется "."
если динамически - "->"
это в общем случае, возможен вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
struct mystruct {
    int i;
}; 
 
int main() 
{
    mystruct t;
    mystruct* ptr_t = &t;
    ptr_t->i = 100500;
    std::cout << t.i << std::endl;
}
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
21.09.2011, 22:42     Что за оператор ->? #6
Ну собственно это короткий вариант обращения к объектам класса для указателей.
Допустим есть класс Test с public объектом object, так вот если в main мы сделаем указатель на Test
C++
1
Test *test=new Test; // new Test означает что память выделена под класс Test
то для обращения к object через этот указатель нужно его разименовать, а потом обратиться к объекту класса, те:
C++
1
(*test).object
скобки нужны потому что у точки больший приоритет чем у звёздочки (разименования), чтобы упростить всё это дело и не писать каждый раз эту длинную форму со скобками для указателей и сделали операцию стрелка:
C++
1
test->object
По началу немного непривычно что для указателей на класс нужно использовать стрелку, иначе - точку, но привыкаешь к этому быстро да и компилятор в случае чего показывает где ошибка.
Vlad_IT
 Аватар для Vlad_IT
1437 / 343 / 16
Регистрация: 03.04.2010
Сообщений: 2,095
21.09.2011, 22:51     Что за оператор ->? #7
fredwriter, Можно сказать что это доступ к ссылочному объекту, или я не так выразился. Кодом будет яснее.

Если так объявлен объект.
C++
1
SommeClass s;
то вызов его метода будет так
C++
1
s.Method();
А если объявлен так
C++
1
SommeClass* s;
то будет так
C++
1
s->Method();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2011, 23:53     Что за оператор ->?
Еще ссылки по теме:

что делает оператор? C++
Что означает оператор %= ? C++
Что за оператор param =:: value; C++

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

Или воспользуйтесь поиском по форуму:
fredwriter
7 / 7 / 1
Регистрация: 17.10.2009
Сообщений: 269
21.09.2011, 23:53  [ТС]     Что за оператор ->? #8
Спасибо всем.
Yandex
Объявления
21.09.2011, 23:53     Что за оператор ->?
Ответ Создать тему
Опции темы

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