Практика на объекты в C++
Задачи складывают объекты в контейнер, вкладывают один класс в поле другого и читают данные через ссылку или указатель на существующий экземпляр.
Сделайте класс Item с полями
name и price. Дан вектор:
std::vector<Item> cart = {
Item("pen", 2),
Item("book", 15),
Item("bag", 30),
};
Выведите сумму price всех позиций.
Сделайте класс Grade с полями
subject и score.
Создайте массив из четырех оценок.
Выведите названия предметов с score >= 4.
Сделайте класс City с полем name.
Дана карта:
std::map<std::string, City> codes = {
{"RU-MOW", City("Moscow")},
{"RU-SPB", City("Saint Petersburg")},
};
По ключу "RU-SPB" выведите название города.
Сделайте класс Engine с полем power.
Сделайте класс Car с полями model
и engine типа Engine.
Создайте автомобиль и выведите мощность двигателя.
Сделайте класс Profile с полем nick
и класс Account с полем Profile* owner
и balance. Дана переменная:
Account acc(nullptr, 0);
Если указатель на профиль не задан, выведите
"guest", иначе выведите nick.
Сделайте класс Route с методами
addStop и stops.
Постройте маршрут "A", "B",
"C" одной цепочкой вызовов.
Выведите список остановок через пробел.
Даны два объекта:
class Token {
public:
std::string code;
Token(std::string value) : code(value) {}
};
Token t1("x");
Token t2("x");
Token& ref = t1;
Выведите три результата сравнения адресов:
&t1 и &t2, &t1 и &ref,
&ref и &t1.
Сделайте класс Team, хранящий
std::vector<Member> с полем name.
Добавьте трех участников. Выведите количество
членов команды.
Дан список:
class Point {
public:
int x;
int y;
Point(int px, int py) : x(px), y(py) {}
};
std::vector<Point> path = {
Point(0, 0),
Point(3, 4),
Point(6, 0),
};
Выведите число точек с y == 0.