Примеры использования дружественных функций и дружественных классов в языке программирования C++
В статье рассматривается несколько примеров, демонстрирующих основные принципы дружественности, принятые в языке программирования C++. Приведенные реализации могут рассматриваться при изучении объектно-ориентированного программирования и будут интересны как школьникам, так и студентам.
Ключевые слова
Текст научной работы
Язык программирования C++ широко используется для разработки программного обеспечения, и является одним из самых популярных языков программирования. Область его применения включает создание операционных систем, разработку прикладных программ, написание драйверов устройств, а также развлекательных приложений. В настоящее время существует множество реализаций языка C++, как коммерческих, так и бесплатных (например, Microsoft Visual C++ 2005-2013).
Особое внимание при изучении программирования следует уделять объектно-ориентированному программированию [1], при этом первоначальное ознакомление с ним можно проводить, в том числе, и на основе языка Pascal [3]. Однако, по мнению автора, более предпочтительно все-таки использование языка программирования C++, в котором объектовый тип чаще называют классом. Классы позволяют моделировать объекты, имеющие атрибуты (данные-элементы, представляемые в виде полей) и варианты поведения или операции (функции-элементы, функции-члены или методы класса).
В данной статье автор предлагает несколько примеров, посвященных изучению отношения дружественности в языке программирования C++ [5]. Предполагается, что учащиеся уже имеют базовые представления о языке программирования C++ и о разработке классов на его основе.
Известно, что функции, объявленные как дружественные некоторому классу, имеют доступ к закрытым элементам private (и protected) данного класса и используются для повышения производительности; они определяются вне области действия класса. Так, например, дружественную функцию целесообразно использовать в случае организации взаимодействия нескольких объектов разных классов, когда обеспечивающая такое взаимодействие функция должна иметь доступ к закрытым полям нескольких объектов. При этом функция или класс в целом могут быть объявлены другом другого класса. Объявление дружественности не зависит от спецификаторов доступа, и обычно дружественные функции объявляются в начале тела класса.
Для объявления функции другом класса перед ее прототипом в описании класса указывают ключевое слово friend. Например, чтобы объявить класс Class_2 другом класса Class_1, нужно в определении класса Class_1 записать объявление в форме: friend Class_2.
Приведем пример использования дружественной функции двух классов – класса «Правильный треугольник» и класса «Окружность», которая проверяет, можно ли поместить заданную окружность внутри заданного треугольника.
Читайте также
- Дмитриев В.Л.
- Дмитриев В.Л.
- Дмитриев В.Л.
- Алексеева К.В.
- Дмитриев В.Л.
- Дмитриев В.Л.
- Соснина У.Ю.
Список литературы
- Бабушкина И.А., Окулов С.М. Практикум по объектно-ориентированному программированию. – М.: "БИНОМ. Лаборатория знаний". 2012. – 371 с.
- Дмитриев В.Л., Ахмадеева Р.З. Развитие конструктивного мышления при изучении программирования // Информатика и образование. 2009. № 2. – С. 69-73.
- Дмитриев В.Л. Развитие представлений об объектном программировании на примере разработки объектов в среде программирования Turbo Pascal // Информатика в школе. 2014. № 2 (95). – С. 54-59.
- Дмитриев В.Л. Теория и практика решения задач по программированию. Ч.1. Уфа: РИЦ БашГУ. 2007. – 264 с.
- Дмитриев В.Л. Теория и практика программирования на С++. – Стерлитамак: РИО СФ БашГУ. 2013. – 315 с.
- Дмитриев В.Л. Тестирование в игровой форме как способ проверки усвоения учебного материала // Информатика в школе. 2012. №10 (83). – С. 41-43.
- Дмитриев В.Л. Компьютерная программа для проведения тестирования с поддержкой произвольного расположения материалов теста // Информатика и образование. 2014. №2 (251). – С. 74-77.
- Окулов С.М. Программирование в алгоритмах. – М.: БИНОМ. Лаборатория знаний. 2002. – 341 с.
Цитировать
Дмитриев, В.Л. Примеры использования дружественных функций и дружественных классов в языке программирования C++ / В.Л. Дмитриев. — Текст : электронный // NovaInfo, 2014. — № 29. — URL: https://novainfo.ru/article/2849 (дата обращения: 06.04.2022).
Поделиться
Электронное периодическое издание зарегистрировано в Федеральной службе по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор), свидетельство о регистрации СМИ — ЭЛ № ФС77-41429 от 23.07.2010 г.