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-Е ИЗДАНИЕ) (часть 11) онлайн - Studbook

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

Резюме

Виртуальные функции позволяют решать прямо в процессе выполнения про-

граммы, какую именно функцию вызывать. Без их использования это решение

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

шую гибкость при выполнении одинаковых действий над разнородными объек-

тами. В частности, они разрешают использование функций, вызванных из масси-

ва указателей на базовый класс, который на самом деле содержит указатели (или

ссылки) на множество порожденных классов. Это пример полиморфизма. Обыч-

но функция объявляется виртуальной в базовом классе, а другие функции с тем

же именем объявляются в порожденных классах.

Использование по крайней мере одной чистой виртуальной функции делает

весь класс, содержащий ее, абстрактным. Это означает, что с помощью этого

класса нельзя создавать никакие объекты.

Дружественная функция имеет доступ к скрытым данным класса, по отно-

шению к которому она объявлена таковой. Это бывает полезно, когда одна функ-

ция должна иметь доступ к двум и более не связанным между собой классам и

когда перегружаемая операция должна, со своей стороны, использовать данные

«чужого» класса, методом которого она не является. Дружественность также ис-

пользуется для упрощения записи функций.

Статической называется функция, работающая с классом в целом, а не над

отдельными его объектами. В частности, она может обрабатывать статические

переменные. Она может быть вызвана с использованием имени класса и опера-

тора явного задания функции.

Оператор присваивания = может быть перегружен. Это необходимо, когда он

должен выполнять более сложную работу, нежели простое копирование содер-

жимого одного объекта в другой. Конструктор копирования, создающий копии

объектов во время инициализации и во время передачи аргументов и возврата

результата по значению, также может быть перегружен. Это необходимо, когда

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

Указатель this может использоваться в функции для указания на объект, чьим

методом он является. Он пригодится, если в качестве результата возвращается

объект, чьим методом является данная функция.

Оператор dynamic_cast умеет многое. С его помощью можно определить, на

объект какого типа ссылается указатель, можно в некоторых ситуациях изме-

нять тип указателя. Оператор typeid позволяет узнать кое-что о классе объекта,

например его название.

Объектная диаграмма UML показывает отношения внутри группы объектов

в определенный момент работы программы.

 

 

33