ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 10) онлайн
Глава 10. Указатели
Адреса и указатели
Операция получения адреса &
Указатели и массивы
Указатели и функции
Указатели на строки
Управление памятью: операции new и delete
Указатели на объекты
Связный список
Указатели на указатели
Пример разбора строки
Симулятор: лошадиные скачки
UML-диаграммы
Отладка указателей
Для программистов на C++ указатели являются настоящим кошмаром, кото- рый заставит растеряться кого угодно. Но бояться не стоит. В этой главе мы по- пытаемся прояснить тему указателей и рассмотреть их применение в програм- мировании.
Для чего нужны указатели? Вот наиболее частые примеры их использования:
доступ к элементам массива;
передача аргументов в функцию, от которой требуется изменить эти аргу- менты;
передача в функции массивов и строковых переменных;
выделение памяти;
создание сложных структур, таких, как связный список.
Указатели — это важная возможность языка C++, поскольку многие другие языки программирования, такие, как Visual Basic или Java, вовсе не имеют указа-
телей. (В Java используются ссылки.) Действительно ли указатели являются столь необходимыми? В предыдущих главах мы видели, что многое можно сделать и без них. Некоторые операции, использующие указатели, могут быть выполне- ны и другими путями. Например, доступ к элементу массива мы можем полу- чить и не используя указатели (разницу мы рассмотрим позднее), а функция может изменить аргумент, переданный не только по указателю, но и по ссылке.
Однако в некоторых ситуациях указатели являются необходимым инстру- ментом увеличения эффективности программ на языке C++. Замечательным примером является создание таких структур данных, как связные списки или бинарные деревья. Кроме того, некоторые ключевые возможности языка C++, такие, как виртуальные функции, операция new, указатель this (которые мы об- судим в главе 11 «Виртуальные функции»), требуют использования указателей. Поэтому, хотя мы и можем многое сделать без них, указатели будут нам необхо- димы для более эффективного использования языка программирования.
В этой главе мы познакомимся с указателями, начав с основных концепций и закончив сложными случаями с применением указателей.
Если вы уже знакомы с языком C, то вы можете лишь поверхностно озна- комиться с первой частью главы. Однако вам следует остановиться на разде- лах второй половины главы, посвященных таким вопросам, как операции new и delete, доступ к функциям классов с использованием указателей, массивы указателей на объекты и связные списки.
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
