Любитель чаепитий
|
|
1 | |
В чем сила указателей?16.08.2015, 11:11. Показов 2123. Ответов 7
Метки нет (Все метки)
Здравствуйте, вот часто вижу и в книгах и на форумах используются указатели и ссылки, но я в своих классах и программах использую простые переменные, я просто похоже не знаю, в чем их сила, подскажите, где их лучше использовать, чем обычные переменные. Заранее спасибо!
0
|
16.08.2015, 11:11 | |
Ответы с готовыми решениями:
7
В чем смысл указателей? В чем отличие ссылочных переменных от указателей? В чём смысл использования указателей на функции В чем отличие указателей и массивов на примере strlen()? |
Музыка нас Связала
232 / 232 / 52
Регистрация: 26.03.2008
Сообщений: 616
|
|
16.08.2015, 11:20 | 2 |
Есть много причин на это. К примеру скорость, при call by value, переменные копируются, а при call by reference передается лишь адрес. Далее с поитерами можно совершать арифметические действия (Pointer Arithmetic) и тд. тп.
1
|
Модератор
|
||||||||||||||||
16.08.2015, 12:48 | 3 | |||||||||||||||
Сообщение было отмечено GbaLog- как решение
Решение
makfak, вот ты если работаешь в ОС Windows, то постоянно используешь на своём компьютере файлы, папки и ярлыки на них. Так вот, файлы и папки - это как переменные и экземпляры классов (объекты), а ярлыки - это как указатели.
В чём сила ярлыков? В том, что весит твой ярлык в пределах 1 Кб, а сам объект (файл с фильмом, к примеру) может весить несколько гигабайт (или даже несколько десятков гигабайт). Вот в том же и сила указателей и ссылок. Экономия памяти и времени. Добавлено через 5 минут Вот в книге Праты "Язык программирования С++. Лекции и упражнения" (2012, 6-е издание, глава 8, стр. 371) про ссылки:
Сообщение от Стивен Прата
Указатели, например, часто используют для передачи в функцию массива какого-либо типа. Вот типичный прототип функции отображения двумерного массива (матрицы):
5
|
Модератор
|
||||||||||||||||
16.08.2015, 13:03 | 5 | |||||||||||||||
Ссылки весьма часто используют в параметрах обычных функций и функций-членов классов.
Вот типичный пример прототипа дружественной функции в классе:
В качестве первого аргумента в функцию передаётся ссылка на объект по имени os класса ostream. В качестве второго аргумента в функцию передаётся ссылка на объект по имени t класса Time. Возвращаемое значение, опять же, ссылка на объект класса ostream.
1
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
16.08.2015, 13:47 | 6 |
Ну и еще:
1) полиморфное поведение возможно только если вы обращаетесь к объекту через указатель или ссылку. 2) ООП - это моделирование систем, а объекты системы должны взаимодействовать друг с другом. В паттернах проектирования объекты поддерживают связь друг с другом при помощи указателей или ссылок друг на друга. 3) Функция-член объекта класса может работать с этим объектом через его указатель this, который передается ей неявно.
3
|
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
|
|
16.08.2015, 13:48 | 7 |
makfak, ооп и массивы
0
|
Модератор
|
|
16.08.2015, 15:39 | 8 |
Ну и классика жанра.
1
|
16.08.2015, 15:39 | |
16.08.2015, 15:39 | |
Помогаю со студенческими работами здесь
8
Динамический массив указателей(не пойму в чем ошибка в коде) В чем сила C#? В чем сила OpenOffice? В чём сила, брат(сестра)? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |