Menu
Coddy logo textTech

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

Часть раздела Объектно-ориентированное программирование путешествия по C++ на Coddy — урок 6 из 104.

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

Класс (чертеж)

class Car {
public:
    std::string brand;
    int year;
    
    std::string getInfo() {
        return brand + " (" + std::to_string(year) + ")";
    }
};

Создание нескольких объектов (экземпляров)

Car car1;
car1.brand = "Tesla";
car1.year = 2023;

Car car2;
car2.brand = "Honda";
car2.year = 2020;

std::cout << car1.getInfo() << std::endl;  // Tesla (2023)
std::cout << car2.getInfo() << std::endl;  // Honda (2020)

Каждый объект независим. Изменение car1 не влияет на car2. Вы можете создавать несколько объектов одного и того же класса, каждый из которых будет содержать свои собственные данные.

challenge icon

Задание

Средне

Создайте класс Car (чертеж). Программа создает два отдельных объекта (экземпляра) на его основе, каждый со своими собственными данными:

  • Публичные члены: brand (string), year (int)
  • getInfo() — возвращает "<brand> (<year>)"

Шпаргалка

Класс — это чертеж, определяющий структуру. Объект — это конкретный экземпляр, созданный на основе этого чертежа.

Определение класса:

class Car {
public:
    std::string brand;
    int year;
    
    std::string getInfo() {
        return brand + " (" + std::to_string(year) + ")";
    }
};

Создание объектов на основе класса:

Car car1;
car1.brand = "Tesla";
car1.year = 2023;

Car car2;
car2.brand = "Honda";
car2.year = 2020;

std::cout << car1.getInfo() << std::endl;  // Tesla (2023)
std::cout << car2.getInfo() << std::endl;  // Honda (2020)

Каждый объект независим и содержит свои собственные данные. Изменение одного объекта не влияет на другой.

Попробуйте сами

#include <iostream>
#include "Car.h"

int main() {
    std::string brand1, brand2;
    int year1, year2;
    
    std::getline(std::cin, brand1);
    std::cin >> year1;
    std::cin.ignore();
    std::getline(std::cin, brand2);
    std::cin >> year2;
    
    Car car1;
    car1.brand = brand1;
    car1.year = year1;
    
    Car car2;
    car2.brand = brand2;
    car2.year = year2;
    
    std::cout << "Car 1: " << car1.getInfo() << std::endl;
    std::cout << "Car 2: " << car2.getInfo() << std::endl;
    return 0;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Объектно-ориентированное программирование