crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Точка или стрелка?, Где какой символ ставить?
mishaga
  опции профиля:
сообщение 9.4.2009, 12:40
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 15.2.2009
Пользователь №: 552

Спасибо сказали: 0 раз(а)




Репутация:   0  


Хочу обратиться с функции-члену или переменной данного класса.
В каких случаях я должен делать это через точку, а в каких через стрелочку?

myClass->myFunction();
или
myClass.myFunction();

Прошу помидорами не закидывать, я в C++ пока совсем зелёный =)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
kwisp
  опции профиля:
сообщение 9.4.2009, 13:47
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


mishaga,
Джеф Элджер "С++"
Раскрывающийся текст
Цитата
Указатели и ссылки
Попытки связать указатели с динамическими объектами часто приводят к недоразумениям. В
сущности, они не имеют друг с другом ничего общего. Вы можете получить адрес стекового объекта и
выполнить обратное преобразование, то есть разыменование (dereferencing) адреса динамического
объекта. И на то, и на другое можно создать ссылку.
{
foo f;
foo* p = &f;
f.MemberFn(); // Использует сам объект
p->MemberFn(); // Использует его адрес
p = new foo;
foo& r = *p; // Ссылка на объект
r.MemberFn(); // То же, что и p->MemberFn()
}
Как видите, выбор оператора . или -> зависит от типа переменной и не имеет отношения к атрибутам
самого объекта. Раз уж мы заговорили об этом, правильные названия этих операторов (. и ->) —
селекторы членов класса (member selectors). Если вы назовете их «точкой» или «стрелкой» на семинаре
с коктейлями, наступит гробовая тишина, все повернутся и презрительно посмотрят на вас, а в дальнем
углу кто-нибудь выронит свой бокал.


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.1.2025, 19:02