Введение в классы и объекты в C++

C++ был самым доминирующим языком программирования в 80-х, 90-х и даже в начале 2000-х. По сей день многие академические учреждения все еще используют его для обучения концепциям объектно-ориентированного программирования. В этой статье я объясню классы и объекты, используя синтаксис C++.

Что такое классы?

  • Пользовательский тип
  • Набор переменных в сочетании с набором связанных функций
  • Расширение понятия «структура»
  • Механизм, используемый в C++ для абстракции данных

Класс C++ имеет следующие связанные атрибуты:

  • Контроль доступа
  • Конструкторы и деструкторы
  • Коллекция членов данных
  • Коллекция функций-членов
  • Имя связанного тега класса

Контроль доступа

  • Private (только собственными функциями-членами)
  • Защищено (собственными и дочерними функциями)
  • Общедоступный (всеми)

Конструктор

  • функции-члены с тем же именем, что и у класса (имя класса)
  • поддерживать автоматическую инициализацию объектов в точке их объявления
  • может принимать аргументы
  • не имеют возвращаемых типов

Деструктор

  • функция-член (~ имя класса)
  • автоматически вызывается, когда объект выходит за пределы области видимости
  • не могу принимать аргументы
  • не имеет возвращаемого типа

Члены данных

  • Элементы данных — это состояния или атрибуты объекта.
  • Пример:

Функции участников

  • Функции-члены являются общедоступным интерфейсом
  • Функции-члены имеют полный доступ к публичным, защищенным и закрытым членам класса.
  • Функции-члены определяются в рамках своего класса.
  • Пример объявления класса:

  • Примеры реализации функций-членов:

Экземпляр объекта

Производный класс

этот указатель

  • Указатель this — это указатель, доступный только внутри функций-членов класса, структуры или типа объединения.
  • Он указывает на объект, для которого вызывается функция-член.
  • Статические функции-члены не имеют указателя this.
  • Пример:

  • Объединение вызовов функций-членов:

Статическое ключевое слово

  • В C++ при изменении члена данных в объявлении класса ключевое слово static указывает, что одна копия члена является общей для всех экземпляров класса.
  • При изменении функции-члена в объявлении класса ключевое слово static указывает, что функция обращается только к статическим членам.
  • Пример:

Классы друзей

  • Класс может назвать другую функцию или другой класс своим другом. Это дает названной функции право доступа ко всем приватным функциям.
  • Это опасный механизм, и его не следует использовать без крайней необходимости!
  • Дружба не является взаимной, если это прямо не указано.
  • Дружба не передается по наследству.
  • Дружба не транзитивна. Следовательно, если класс A является другом класса B, а класс B является другом класса C, мы не можем заключить, что класс C является другом класса A.
  • Общее использование:
  1. разрешить вложенным классам доступ к закрытым членам окружающего класса;
  2. для доступа к закрытым членам других вложенных классов;
  3. чтобы разрешить окружающему классу доступ к закрытым членам вложенных классов.
  4. Пример: в связанном списке объекты списка и узла
  • Пример: