Точка или стрелка?, Где какой символ ставить? |
Здравствуйте, гость ( Вход | Регистрация )
Точка или стрелка?, Где какой символ ставить? |
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). Если вы назовете их «точкой» или «стрелкой» на семинаре с коктейлями, наступит гробовая тишина, все повернутся и презрительно посмотрят на вас, а в дальнем углу кто-нибудь выронит свой бокал. |
|
|
Текстовая версия | Сейчас: 28.1.2025, 19:02 |