Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
24<br />
ками. «Введение связей с другими элементами данных через указатели –<br />
чрезвычайно важ<strong>на</strong>я идея в программировании; это ключ к представлению<br />
сложных структур» [6].<br />
Указатель (pointer) – это специальный тип данных, описывающий не<br />
з<strong>на</strong>чение, а размещение переменной, константы или возвращаемого з<strong>на</strong>чения<br />
функции, «одно из хитроумных понятий C» [9]. Его объявляют как Тип<br />
*имяУказателя. Оператор разыменования * (dereference operator) служит<br />
средством доступа к данным, а имяУказателя может быть другим указателем<br />
или адресом конкретной области памяти. В последнем случае указатель <strong>на</strong>зывают<br />
ссылкой (reference) и объявляют как Тип &имяСсылки. & – это оператор<br />
взятия адреса, а имяСсылки – з<strong>на</strong>чение хранящихся по этому адресу данных.<br />
Между операторами * и & установлено следующее соотношение: если<br />
имяУказателя – адpес данных, то *имяУказателя – их з<strong>на</strong>чение (т.е. указатель);<br />
если имяСсылки – з<strong>на</strong>чение данных, то &имяСсылки – их адpес (т.е.<br />
ссылка).<br />
Од<strong>на</strong>жды инициализировав ссылку, ей нельзя присвоить другое з<strong>на</strong>чение.<br />
И, в отличие от указателей, которые могут быть объявлены без инициализации<br />
или установлены в нуль, ссылки всегда указывают <strong>на</strong> конкретные<br />
данные.<br />
Использование указателей и ссылок играет важную роль в работе с<br />
функциями.<br />
Обычно аргументы, передаваемые в функцию при ее вызове, обрабатываются<br />
функцией как копии данных, и потому сами данные не меняются в<br />
ходе выполнения функции. В вызывающем модуле функция может изменить<br />
только одну переменную – ту, которую о<strong>на</strong> возвращает как результат своей<br />
работы. Если же требуется, чтобы функция изменяла более одной переменной,<br />
ей в качестве аргументов следует передавать не з<strong>на</strong>чения, а ссылки <strong>на</strong><br />
данные, и в первую очередь – адpеса переменных.<br />
А<strong>на</strong>логичное правило действует и при передаче функции в другую<br />
функцию в качестве аргумента.<br />
Для выполнения операций <strong>на</strong>д типизированными данными в C++ используется<br />
более 50 простых операторов. В табл. 8 они расположены по убыванию<br />
приоритета.