Warning: preg_match(): Compilation failed: invalid UTF-8 string at offset 7 in /var/www/public/sources/lib/posts_topic.php on line 1256

Warning: preg_match(): Compilation failed: invalid UTF-8 string at offset 7 in /var/www/public/sources/lib/posts_topic.php on line 1256

Warning: preg_match(): Compilation failed: invalid UTF-8 string at offset 7 in /var/www/public/sources/lib/posts_topic.php on line 1256

Warning: preg_match(): Compilation failed: invalid UTF-8 string at offset 7 in /var/www/public/sources/lib/posts_topic.php on line 1256

Warning: preg_match(): Compilation failed: invalid UTF-8 string at offset 7 in /var/www/public/sources/lib/posts_topic.php on line 1256

Warning: preg_match(): Compilation failed: invalid UTF-8 string at offset 7 in /var/www/public/sources/lib/posts_topic.php on line 1256
VPF::Указатели - Форум программистов
Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Указатели 
:(
    Опции темы
comcon1
Дата 5.8.2005, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: 12
Всего: 17



Это тот пример, который нужен. Стоит добавить, что в С это единственный способ передавать функциям переменные с тем, чтобы они изменялись внутри функции.
В С++ есть еще ссылки. Вот так с ссылкой тот же пример.
Код

void somefunc(Foo &foo_clone)
{
//Делаем что-то страшное :)
 foo_clone.do_horrible_things();
// обращаемся со ссылкой как с самой переменной
}
//**********************
//Где-то в коде...
Foo foo;
somefunc(foo);

Для таких целей как раз использовать удобнее ссылки.

Цитата

В этом примере, что наглядно, используется способ передачи параметра функции по ссылке.


Да. Тока слово ссылки стоит применять в контексте к ссылкам, а чтобы термины не путались - бери в кавычки.


--------------------
PM MAIL   Вверх
En_t_end
Дата 5.8.2005, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



Цитата(comcon1 @ 5.8.2005, 15:49)
В С++ есть еще ссылки. Вот так с ссылкой тот же пример.

Цитата(comcon1 @ 5.8.2005, 15:49)
Да. Тока слово ссылки стоит применять в контексте к ссылкам, а чтобы термины не путались - бери в кавычки.

Угу моя ошибка, извиняюсь.
smile
PM MAIL ICQ Skype GTalk Jabber   Вверх
mr.Anderson
Дата 5.8.2005, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Цитата
В другом ревью оно highly recommended:

Неправильно. Это то же самое ревью, только о другой книге Дейтелов. Понятно? smile Посмотрите на названия книг, о которых пишут там. А внизу там есть список их литературы - какая рекомендована, а какая нет.
Добавлено @ 19:17
En_t_end, из вашего (кстати, вполне хорошего) объяснения я уяснил одно: лучше всегда пользоваться ссылками, а не указателями. Я все правильно понял? Что такое ссылка, я, в принципе, разобрался.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
En_t_end
Дата 6.8.2005, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



sim7

Цитата(sim7 @ 5.8.2005, 23:14)
учше всегда пользоваться ссылками, а не указателями. Я все правильно понял? Что такое ссылка, я, в принципе, разобрался.

Все зависет от конкретного примера. Допустим примение указателей - это пожалуй единств. выход в контексте C++ работать с кучей. Единственно удобный универсальный вариант работы с массивами в контексте функции при передачи его в виде параметра.
Код

void somefunc(char *strng) 
/*Самый удобный вариант, когда надо получать массив в качестве параметра */
{
//что-то делаем с strng.
}
//Где-то в коде...
char *some_pointer = new char[MAX_LONG_STR];
somefunc(some_pointer); //передаем дин. массив
char some_str[MAX_LONG_STR];
somefunc(some_str);  //передаем обычный массив


Это сообщение отредактировал(а) En_t_end - 6.8.2005, 10:49
PM MAIL ICQ Skype GTalk Jabber   Вверх
comcon1
Дата 6.8.2005, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: 12
Всего: 17



Работа со ссылками не столь разнообразна, сколь с указателями. Там много ограничений. Например список объектов не может быть реализован с помощью ссылок, ведь ссылкам должны передаваться реальные объекты.

+ указателей в том, что отведенная память сохраняется при удалении указателя, а, следовательно, она доступна из любой области видимости.
Однако это и является их минусом, потому что в кривых руках память забывают отводить и это приводит к утечкам (потере указателей на отведенную память).


--------------------
PM MAIL   Вверх
En_t_end
Дата 6.8.2005, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



comcon1

Цитата(comcon1 @ 6.8.2005, 15:44)
Однако это и является их минусом, потому что в кривых руках память забывают отводить

Я думаю это их минусом не является. Это является минусом обладателя кривых рук smile
PM MAIL ICQ Skype GTalk Jabber   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0714 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.