Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/studb20/public_html/index.php on line 4
 Резюме - ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 10) онлайн - Studbook

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 10) онлайн

Резюме

Мы весьма поверхностно прошлись в этой главе по теме указателей. Она очень обширна, и в разделах этой главы мы рассмотрели лишь основные понятия, на которых построены примеры нашей книги и которых достаточно для дальнейше- го изучения темы.

Мы узнали, что все объекты имеют адреса в памяти компьютера и что адре- са — это указатели константы. Адрес переменной можно получить, используя операцию получения адреса &.

Указатели — это переменные, значением которых является адрес. Указате- ли определяются с использованием звездочки, которая означает указатель на. В определение указателя всегда включают тип данных, на который он указыва- ет, так как компилятору необходимы сведения о том, на что будет указывать указатель и как правильно выполнять с ним арифметические действия. Доступ к тому, на что указывает указатель, мы получаем, применяя звездочку, которая в этом случае является операцией разыменования, то есть получения значения переменной, на которую указывает указатель.

Специальный тип void* означает указатель на любой тип данных. Он исполь- зуется в ситуациях, когда один и тот же указатель должен хранить адреса пере- менных разных типов.

Доступ к элементу массива можно получить, используя операции массива с квадратными скобками или указатели. Адрес массива является указателем-кон- стантой, но его можно присвоить переменной-указателю, которая может быть увеличена или изменена.

Функция при передаче ей адреса переменной может работать с самой пере- менной (этого не происходит, когда аргумент передается по значению). В этом отношении передача аргумента по указателю дает то же преимущество, что и передача по ссылке, хотя для доступа к аргументам указателя нужно применять операцию разыменования. Однако указатели в некоторых случаях предоставляют более гибкий механизм.

Строковая константа может быть определена как массив или с использова- нием указателя; последний подход более гибок. Строки, представленные масси- вами типа char, обычно передаются в функции с использованием указателей.

Операция new предназначена для выделения требуемого количества памяти в системе. Она возвращает указатель на выделенный участок памяти. Использу- ется для создания переменных и структур данных в течение исполнения про- граммы. Операция delete освобождает память, выделенную с использованием операции new.

Если указатель указывает на объект, то доступ к членам объекта можно по- лучить, используя операцию ->. Для доступа к членам структуры используется тот же синтаксис.

В классах и структурах могут содержаться элементы, которые являются ука- зателями на сами эти классы или структуры. Это позволяет создать более слож- ные структуры, такие, как связные списки.

Могут существовать указатели на указатели. Такие переменные определяют- ся с использованием двойной звездочки, например int** pptr.

Многообразие в диаграммах классов UML показывает количество объеди- ненных объектов.

Диаграммы состояний UML показывают, как изменяются с течением време- ни ситуации, в которых находится объект. Состояния показываются на диаграм- мах в виде прямоугольников со скругленными углами, а переходы между со- стояниями — в виде прямых линий.

 

58