ООП — это парадигма программирования, основанная на концепции "объектов", которые содержат данные (поля) и методы (функции). Основные принципы ООП включают:
Определение:
Сокрытие внутренней реализации объекта и предоставление строго определенного интерфейса для взаимодействия с ним.
Объяснение:
Инкапсуляция позволяет защитить данные объекта от неконтролируемого доступа. В C++ это реализуется через модификаторы доступа:
private
— доступ только внутри класса.protected
— доступ внутри класса и его наследников.public
— доступ из любого места.Пример:
class BankAccount {
private:
double balance; // Скрыто от внешнего доступа
public:
void deposit(double amount) { // Публичный интерфейс
if (amount > 0) balance += amount;
}
};
Определение:
Способность класса наследовать свойства и методы другого класса (родительского).
Объяснение:
Наследование позволяет избежать дублирования кода и создавать иерархии классов. В C++ поддерживаются:
Пример:
class Animal {
public:
void eat() { std::cout << "Eating...\n"; }
};
class Dog : public Animal { // Наследование
public:
void bark() { std::cout << "Barking...\n"; }
};
Определение:
Возможность объектов с одинаковым интерфейсом вести себя по-разному в зависимости от реализации.
Объяснение:
В C++ полиморфизм реализуется через:
Пример:
class Shape {
public:
virtual void draw() { std::cout << "Drawing a shape\n"; } // Виртуальная функция
};
class Circle : public Shape {
public:
void draw() override { std::cout << "Drawing a circle\n"; } // Переопределение
};
Определение:
Выделение существенных характеристик объекта и игнорирование несущественных.
Объяснение:
Абстракция позволяет работать с высокоуровневыми концепциями, скрывая сложность. В C++ это:
Пример:
class AbstractDevice {
public:
virtual void start() = 0; // Чисто виртуальная функция
};
class Printer : public AbstractDevice {
public:
void start() override { std::cout << "Printer started\n"; }
};
Основные принципы ООП — инкапсуляция, наследование, полиморфизм и абстракция. Они позволяют создавать гибкие, масштабируемые и поддерживаемые программы. В C++ эти принципы реализуются через классы, модификаторы доступа, виртуальные функции и абстрактные классы.