crossplatform.ru

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

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


Студент
*

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

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




Репутация:   0  


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

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

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


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(mishaga @ 9.4.2009, 16:40) *
В каких случаях я должен делать это через точку, а в каких через стрелочку?

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

* Точка, когда через обычную переменную
 MyClass myClass;
myClass.myFunction();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 9.4.2009, 13:47
Сообщение #3


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

Группа: Участник
Сообщений: 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). Если вы назовете их «точкой» или «стрелкой» на семинаре
с коктейлями, наступит гробовая тишина, все повернутся и презрительно посмотрят на вас, а в дальнем
углу кто-нибудь выронит свой бокал.


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 9.4.2009, 18:28
Сообщение #4


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

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




Репутация:   6  


мы помидоры приберегем до приезда Балмера :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 9.4.2009, 19:51
Сообщение #5


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


mishaga, если хочешь значть С++, то заучи от корки до корки страуструпа, там это все объясняется. Не прочитай, а именно заучи.
А те моменты который не понимаешь, можешь спрашивать у нас, объясним...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 9.4.2009, 22:30
Сообщение #6


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

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

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




Репутация:   23  


mishaga,
страуструп оч хорошо .. . однако после прочтения стоит заглянуть в стандарт чем раньше тем лучше:) только после прочтения.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Novak
  опции профиля:
сообщение 10.4.2009, 19:34
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 319
Регистрация: 15.3.2008
Из: Замкадыш
Пользователь №: 121

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




Репутация:   6  


А до Страуструпа, чтоб моск не сломать, Эккеля
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mishaga
  опции профиля:
сообщение 11.4.2009, 9:01
Сообщение #8


Студент
*

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

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




Репутация:   0  


Спасибо!
Всё теперь понятно.
Книжки б теперь найти в бумаге! =)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 11.4.2009, 10:57
Сообщение #9


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

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

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




Репутация:   23  


Цитата(mishaga @ 11.4.2009, 10:01) *
Книжки б теперь найти в бумаге! =)

нынче не дешево обходятся в бумаге и как ни печально качество книги плохое бумага перемлет так себе.
сам не люблю электронную литературу а что поделаешь...:(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrew Selivanov
  опции профиля:
сообщение 16.4.2009, 11:50
Сообщение #10


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

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




Репутация:   6  


Цитата(Novak @ 10.4.2009, 20:34) *
А до Страуструпа, чтоб моск не сломать, Эккеля

+1
а потом Мейерса

Сообщение отредактировал Andrew Selivanov - 16.4.2009, 11:51
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.12.2024, 9:44