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

Objective-C

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

Оператор -> - Objective-C

11.03.2014, 13:32. Просмотров 654. Ответов 6
Метки нет (Все метки)

В первый раз увидел этот оператор в cocos2D, до этого в objective-с ни разу с ним не сталкивался. Что он означает и используется ли он в objective-с вне cocos2D? Заранее благодарю за ответ.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
korvin_
1659 / 1197 / 181
Регистрация: 28.04.2012
Сообщений: 4,337
11.03.2014, 14:20     Оператор -> #2
http://en.wikipedia.org/wiki/Dereference_operator
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
11.03.2014, 14:30     Оператор -> #3
Обращение к полю по указателю на структуру или экземпляр класса. При работе со структурами используется сплошь и рядом. При работе же с классами не вижу смысла этим пользоваться, ибо ООП все-таки. Единственный выигрыш, который приходит в голову - быстродействие, нет накладных расходов на поиск и вызов геттера или всякого KVC, в остальном только минусы.
korvin_
1659 / 1197 / 181
Регистрация: 28.04.2012
Сообщений: 4,337
11.03.2014, 18:47     Оператор -> #4
Цитата Сообщение от glvrzzz Посмотреть сообщение
ибо ООП все-таки. Единственный выигрыш, который приходит в голову - быстродействие, нет накладных расходов на поиск и вызов геттера или всякого KVC, в остальном только минусы.
При чем тут ООП? Если у тебя переменная указатель на экземпляр класса, то ты и геттер (или любой другой метод) будешь вызывать как

C++
1
obj->method();
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
11.03.2014, 18:57     Оператор -> #5
Цитата Сообщение от korvin_ Посмотреть сообщение
При чем тут ООП? Если у тебя переменная указатель на экземпляр класса, то ты и геттер (или любой другой метод) будешь вызывать как

C++
1
obj->method();
При том, что objective-с.
jude
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 190
13.03.2014, 13:29  [ТС]     Оператор -> #6
Т.е в objective-с этот оператор вызывает переменные класса, а в C++ он вызывает методы? Я правильно понимаю отличие?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2014, 15:42     Оператор ->
Еще ссылки по теме:

Оператор new C++
C++ Оператор while
Оператор с предусловием заменить на оператор с постусловием Free Pascal
Оператор else PHP

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

Или воспользуйтесь поиском по форуму:
korvin_
1659 / 1197 / 181
Регистрация: 28.04.2012
Сообщений: 4,337
13.03.2014, 15:42     Оператор -> #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Это оператор С, а не Objective C. Просто сокращенная запись доступа к элементу структуры по указателю. Я же давал ссылку на разыменовывание указателей.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <u.h>
#include <libc.h>
 
typedef struct Foo
{
    int x;
} Foo;
 
void
main(void)
{
    Foo a;
    Foo *b;
 
    a.x = 1;
    print("%d\n", a.x);
 
    b = (Foo *)malloc(sizeof(Foo));
    (*b).x = 2; // мы не можем просто написать b.x, т.к. b — это не структура Foo, а указатель на нее
    print("%d\n", (*b).x);
    b->x = 3;
    print("%d\n", b->x);
 
    free(b);
    exits(0);
}
=>
Bash
1
2
3
4
5
~/prog/c $ ./deref
1
2
3
~/prog/c $
Yandex
Объявления
13.03.2014, 15:42     Оператор ->
Ответ Создать тему
Опции темы

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