Статьи

Учебные материалы по языку C++ — от основ до продвинутых тем

Классы и объекты

Страница 23 из 43 · 2026-10-25 · 1 мин чтения

Классы и объекты

Класс и объект

Класс описывает тип, а объект — конкретный экземпляр этого типа.

class Player {public:    int health = 100;    void TakeDamage(int damage) {        health -= damage;        if (health < 0) health = 0;    }};Player player;player.TakeDamage(25);

Класс объединяет данные и операции над ними. public открывает доступ к членам извне.

Поля и методы

Поля хранят состояние объекта. Методы реализуют поведение. Каждый обычный нестатический метод имеет скрытый параметр this, указывающий на текущий объект.

class Counter {public:    void Increment() { ++value; }    int GetValue() const { return value; }private:    int value = 0;};

Метод GetValue() const не изменяет состояние объекта и может вызываться для константных объектов.

private и public

В class доступ по умолчанию private. Закрытые поля нельзя напрямую менять снаружи. Это помогает контролировать допустимые состояния объекта.

Статические члены

static-член класса относится к типу, а не к каждому объекту отдельно. Статический метод не имеет this и не может напрямую обращаться к нестатическим полям без объекта.

class Math {public:    static int Double(int value) { return value * 2; }};

Вызов: Math::Double(5).

const-объекты

Если объект объявлен const, вызывать у него можно только подходящие const-методы. Поэтому методы, которые только читают состояние, стоит помечать const.

Итог

Класс — инструмент для объединения состояния и поведения. Скрывай внутренние детали, предоставляй понятный интерфейс и отмечай методы чтения как const.