На сайте используется сервис Яндекс.Метрика, продолжая использованние сайта вы соглашаетесь со сбором статистических данный, не являющихся персональной информацией. Подробнее: Конфиденциальность персональных данных

Получить работу

Работы предоставляются в качестве примера, выдача данных работ как собсвенных запрещена!
Название: 12 практическая
Дисциплина: Объектно-ориентированное программирование
Краткое описание:

Тема: «Перегрузка операций»

Цель работы: Изучить механизм перегрузки операций.

Задание №1: Для одной из прошлых программ создайте статические члены-данные класса:

  1. Добавить статическое поле int сount, выступающее в роли счетчика объектов класса.
  2. Деструктор класса должен уменьшать на единицу значение счетчика
  3. Добавить статический метод int getCount() возвращающий значение счетчика
  4. Продемонстрировать изменение значения статического поля.

Задание №2: Модифицируйте прошлую программу или напишите новую:

  1. Определить какие методы являются константными, определить константные параметры и константные возвращаемые значения методов.
  2. Добавить константное поле, хранящее идентификатор объекта (номер созданного объекта), предусмотреть методы вывода информации о идентификаторе.
  3. Описать и инициализировать обычные и константные объекты.
  4. Выполнить вызовы обычных и константных методов для каждого вида объектов.
  5. Провести тестирование программы: Откомпилировать программу. Имеются ли ошибки компиляции и какие? Если имеются, то закомментировать соответствующие строки кода и вновь провести компиляцию. Какие предупреждения выдает компилятор и в чем их смысл? Как их можно объяснить с позиции обеспечения надежности программы?

Здесь помимо прочего имеется статический атрибут _counter, который считает кол-во созданных объектов, а также метод getCount, который этот атрибут возвращает.

Также здесь имеется константный метод print, который выводит данные в стандартный вывод.

В функции main я создал два объекта, один константный, а второй обычный, при вызове у константного объекта метода print, ошибки не возникает, а при попытке изменения данных через set, появляется ошибка. При выводе и изменении неконстантного объекта ошибок не возникает, это видно на рисунке 2.

Задание №3: Изучить дополнительный материал по дружественным функциям и напишите небольшую программу, которая их использует.

Я решил доработать прошлый код и добавил 4 новых функции: setLogin, которая задаёт логин, printPassword, которая печатает пароль, заменяя все символы кроме первого и последнего на *, getLogin, которая является дружественной и возвращает логин и setPassword, которая также является дружественной и задаёт пароль.

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