Объектно-ориентированное программирование (ООП) основано на классах и объектах: объекты создаются на основе классов.
ООП: преимущества и краткий обзор
C++ расширяет возможности языка Си, добавляя поддержку ООП. Это позволяет создавать более эффективный и легко масштабируемый код. Вместо многократного повторения кода, ООП использует классы для создания объектов.
Рассмотрим пример: браузер и его вкладки. Вкладка — это класс. Каждая новая вкладка — объект этого класса. Без использования объектов, для каждой новой вкладки пришлось бы копировать весь код, что неэффективно. С объектами мы создаем новые объекты, используя класс и его функции, что позволяет открывать сотни вкладок без многократного копирования кода.
Создание класса в C++
Классы в C++ объявляются вне любых функций.
class OutA {
// Содержимое класса
};
Ключевое слово class объявляет класс. Имя класса (OutA в примере) может быть любым. Фигурные скобки {} содержат параметры, функции и поля класса. Точка с запятой после закрывающей фигурной скобки обязательна.
Модификаторы доступа: public, private, protected
В классе используются модификаторы доступа: public, private и protected, определяющие видимость членов класса.
class OutA {
public:
// Доступны отовсюду
private:
// Доступны только внутри класса
protected:
// Доступны внутри класса и его наследников
};
- public: Члены класса, объявленные с public, видны из любой функции, класса или наследника.
- private: Члены класса, объявленные с private, видны только внутри класса.
- protected: Члены класса, объявленные с protected, видны внутри класса и его наследников.
Практический пример: класс с методом и переменными
Создадим простой класс с методом и переменными:
class OutA {
public:
void message() {
std::cout << "Class is working\n";
}
private:
int year;
int month;
int day;
};
int main() {
OutA skoda;
skoda.message();
return 0;
}
Здесь создан объект skoda класса OutA и вызван его публичный метод message(). Обращение к приватным переменным year, month, day приведёт к ошибке компиляции.
Методы get и set
Обычно поля класса объявляются private, а доступ к ним осуществляется через методы get и set.
class OutA {
public:
void set(int y, int m, int d) {
year = y;
month = m;
day = d;
}
void get() {
std::cout << year << ", " << month << ", " << day << "\n";
}
private:
int year;
int month;
int day;
};
int main() {
OutA skoda;
skoda.set(2005, 11, 23);
skoda.get();
return 0;
}
Метод set устанавливает значения переменных, а метод get выводит их на экран.
Создание нескольких объектов одного класса
Можно создавать несколько объектов одного класса, каждый со своими значениями переменных:
int main() {
OutA skoda;
skoda.set(2005, 11, 23);
OutA bmw;
bmw.set(2000, 1, 11);
skoda.get();
bmw.get();
return 0;
}
В этом уроке рассмотрены основы ООП в C++: создание классов, использование модификаторов доступа и работа с методами get и set. Для лучшего понимания рекомендуется самостоятельно создать класс на другую тему (например, класс «Дом» с объектами «магазин», «церковь»). Знание ООП важно для изучения других языков программирования, таких как Java и C#.