Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Точка или стрелка?
Форум на CrossPlatform.RU > Разработка > С\С++
mishaga
Хочу обратиться с функции-члену или переменной данного класса.
В каких случаях я должен делать это через точку, а в каких через стрелочку?

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

Прошу помидорами не закидывать, я в C++ пока совсем зелёный =)
Litkevich Yuriy
Цитата(mishaga @ 9.4.2009, 16:40) *
В каких случаях я должен делать это через точку, а в каких через стрелочку?

* Стрелка, когда обращаешся через указатель
 MyClass * myClass = new MyClass;
myClass->myFunction();

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


trdm
мы помидоры приберегем до приезда Балмера :)
ViGOur
mishaga, если хочешь значть С++, то заучи от корки до корки страуструпа, там это все объясняется. Не прочитай, а именно заучи.
А те моменты который не понимаешь, можешь спрашивать у нас, объясним...
kwisp
mishaga,
страуструп оч хорошо .. . однако после прочтения стоит заглянуть в стандарт чем раньше тем лучше:) только после прочтения.
Novak
А до Страуструпа, чтоб моск не сломать, Эккеля
mishaga
Спасибо!
Всё теперь понятно.
Книжки б теперь найти в бумаге! =)
kwisp
Цитата(mishaga @ 11.4.2009, 10:01) *
Книжки б теперь найти в бумаге! =)

нынче не дешево обходятся в бумаге и как ни печально качество книги плохое бумага перемлет так себе.
сам не люблю электронную литературу а что поделаешь...:(
Andrew Selivanov
Цитата(Novak @ 10.4.2009, 20:34) *
А до Страуструпа, чтоб моск не сломать, Эккеля

+1
а потом Мейерса
Novak
И тогда уж после Страуструпа, чтоб сломать всё, что можно, осилить "Искусство программирования" Кнута)
AD
Цитата(Novak @ 17.4.2009, 13:53) *
И тогда уж после Страуструпа, чтоб сломать всё, что можно, осилить "Искусство программирования" Кнута)

Ребята, вы мазохисты? :)))
D_K
Цитата(AD @ 17.4.2009, 14:30) *
Ребята, вы мазохисты? ))
Они садисты. Не себе ведь советуют ;)

Мое ИМХО: Страуструп для начала просто противопоказан. Сначало что-нибудь простое, направленное больше на практику.
Потом, да, Страуструп, Мейерс, Элджер. Затем уже можно аккуратно Саттера, и совсем уже аккуратно всякого рода Александреску ;) ...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.