Собираем консольный проект
Соединяем функции, класс и STL в одну настоящую программу
- соединить класс, std::vector и функции в одну работающую программу,
- прочитать готовую консольную программу на C++ и предсказать её вывод,
- объяснить, как
main()связывает все части вместе.
1. План: маленький менеджер задач
Мы построим небольшую программу, которая ведёт список дел. Она хранит несколько задач, позволяет отметить одну как выполненную, печатает список и считает, сколько сделано. Вот что она выведет при запуске:
--- My Tasks ---
1. [x] Read a book
2. [ ] Walk the dog
3. [ ] Write C++ code
Done: 1 / 3
Для этого нужны три строительных блока: класс для одной задачи, вектор STL, чтобы хранить много задач, и функции, чтобы делать работу. Построим их по одному.
2. Шаг 1 — класс как чертёж
Класс — это чертёж. Он объединяет данные (что объект знает) и поведение (что объект умеет). Наш Task знает title и выполнена ли задача (done), и умеет отметить себя как выполненную через markDone().
class Task {
public:
std::string title; // data
bool done; // data
Task(std::string t) { // constructor: builds a Task
title = t;
done = false;
}
void markDone() { // behaviour (a method)
done = true;
}
std::string status() const {
return done ? "[x]" : "[ ]";
}
};
- Конструктор
Task(std::string t)запускается при создании задачи и задаёт начальные значения. markDone()иstatus()— это методы, функции, которые принадлежат классу.- Не забудь точку с запятой после закрывающей скобки:
};