Введение в классы и объекты в C++
C++ был самым доминирующим языком программирования в 80-х, 90-х и даже в начале 2000-х. По сей день многие академические учреждения все еще используют его для обучения концепциям объектно-ориентированного программирования. В этой статье я объясню классы и объекты, используя синтаксис C++.
Что такое классы?
- Пользовательский тип
- Набор переменных в сочетании с набором связанных функций
- Расширение понятия «структура»
- Механизм, используемый в C++ для абстракции данных
Класс C++ имеет следующие связанные атрибуты:
- Контроль доступа
- Конструкторы и деструкторы
- Коллекция членов данных
- Коллекция функций-членов
- Имя связанного тега класса
Контроль доступа
- Private (только собственными функциями-членами)
- Защищено (собственными и дочерними функциями)
- Общедоступный (всеми)
Конструктор
- функции-члены с тем же именем, что и у класса (имя класса)
- поддерживать автоматическую инициализацию объектов в точке их объявления
- может принимать аргументы
- не имеют возвращаемых типов
Деструктор
- функция-член (~ имя класса)
- автоматически вызывается, когда объект выходит за пределы области видимости
- не могу принимать аргументы
- не имеет возвращаемого типа
Члены данных
- Элементы данных — это состояния или атрибуты объекта.
- Пример:
Функции участников
- Функции-члены являются общедоступным интерфейсом
- Функции-члены имеют полный доступ к публичным, защищенным и закрытым членам класса.
- Функции-члены определяются в рамках своего класса.
- Пример объявления класса:
- Примеры реализации функций-членов:
Экземпляр объекта
Производный класс
этот указатель
- Указатель this — это указатель, доступный только внутри функций-членов класса, структуры или типа объединения.
- Он указывает на объект, для которого вызывается функция-член.
- Статические функции-члены не имеют указателя this.
- Пример:
- Объединение вызовов функций-членов:
Статическое ключевое слово
- В C++ при изменении члена данных в объявлении класса ключевое слово static указывает, что одна копия члена является общей для всех экземпляров класса.
- При изменении функции-члена в объявлении класса ключевое слово static указывает, что функция обращается только к статическим членам.
- Пример:
Классы друзей
- Класс может назвать другую функцию или другой класс своим другом. Это дает названной функции право доступа ко всем приватным функциям.
- Это опасный механизм, и его не следует использовать без крайней необходимости!
- Дружба не является взаимной, если это прямо не указано.
- Дружба не передается по наследству.
- Дружба не транзитивна. Следовательно, если класс A является другом класса B, а класс B является другом класса C, мы не можем заключить, что класс C является другом класса A.
- Общее использование:
- разрешить вложенным классам доступ к закрытым членам окружающего класса;
- для доступа к закрытым членам других вложенных классов;
- чтобы разрешить окружающему классу доступ к закрытым членам вложенных классов.
- Пример: в связанном списке объекты списка и узла
- Пример: