Классы и объекты в 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 напрямую — данные и поведение живут вместе внутри класса.