Перейти к содержанию

Введение в ООП: классы и объекты

Программирование C++ Сложность 1/5

Начало урока

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

Собери данные и поведение в один аккуратный пакет

Главная идея: Класс позволяет объединить данные, которые есть у чего-то, и поведение, которое оно умеет. Из одного этого чертежа можно создать сколько угодно объектов. Это сердце объектно-ориентированного программирования (ООП).
К концу урока ты сможешь:
  • объяснить разницу между классом и объектом,
  • написать простой класс с данными и функциями-членами,
  • создавать объекты и обращаться к ним через точку (.),
  • защищать данные с помощью private и public (инкапсуляция),
  • написать конструктор, который настраивает объект.

1. Чертёж и то, что по нему создаётся

Представь класс как формочку для печенья. Формочку нельзя съесть — она лишь задаёт форму. Каждый раз, когда ты вдавливаешь её в тесто, получается настоящее печенье: объект.

Значит, класс — это план, а объект — настоящая вещь, сделанная по этому плану. Из одного класса Dog можно создать много объектов-собак — Rex, Bella и других — и у каждого свои собственные данные.

Один класс — много объектов. Класс пишут один раз; объекты создают тогда, когда они нужны.

2. Твой первый класс: данные + поведение

Класс хранит две вещи: данные (их называют атрибутами или переменными-членами) и поведение (функции-члены, иногда их называют методами). Здесь у Dog есть name и age, и он умеет bark().

#include <iostream>
#include <string>
using namespace std;

class Dog {
public:
    string name;          // data: an attribute
    int age;

    void bark() {         // behaviour: a member function
        cout << name << " says: Woof!" << endl;
    }
};

int main() {
    Dog d;                // create one object of type Dog
    d.name = "Rex";       // give its data some values
    d.age = 3;
    d.bark();             // call its behaviour
    return 0;
}

Ожидаемый вывод:

Rex says: Woof!

Мы создаём объект строкой Dog d;, обращаемся к его данным через точку (d.name) и вызываем его поведение через d.bark();. Обрати внимание: функция bark() использует name напрямую — данные и поведение живут вместе внутри класса.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя