Делаю задание, в котором нужно создать небольшое консольное приложение. Необходимо реализовать структуру заказа, но я не понимаю как прописать вектор с товарами. Помогите пожалуйста решить проблему.
#include <iostream>
#include <vector>
#include <string>
using namespace std;
struct Order {
int id;
vector<Item> items;
int num_of_items;
double price;
Order(int p_id, int p_num_of_items, double p_price) : id(p_id), num_of_items(p_num_of_items), price(p_price) {}
void addItem(const Item& item) {
items.push_back(item);
}
void printInfo() {
cout << "Состав заказа:" << endl;
for (const auto& item : items) {
cout << "Название: " << item.title << ", Цена за штуку: " << item.price << endl;
}
}
};
class Item
{
public:
string title;
double price;
int number;
Item(string p_title, double p_price, int p_number) : title(p_title), price(p_price), number(p_number) {}
void printInfo() {
cout << "Название: " << title << ", Цена: " << price << ", Количество на складе: " << number << endl;
}
};
class Clothes : public Item {
public:
string size;
string color;
Clothes(string p_title, double p_price, int p_number, string p_size, string p_color) : Item(p_title, p_price, p_number), size(p_size), color(p_color) {}
void changeSize(string p_size) {
size = p_size;
}
void changeColor(string p_color) {
color = p_color;
}
void printInfo() {
cout << "Название: " << title << ", Цена: " << price << ", Количество на складе: " << number << ", Размер: " << size << ", Цвет: " << color << endl;
}
};
class Shoes : public Item {
public:
string size;
string type;
Shoes(string p_title, double p_price, int p_number, string p_size, string p_type) : Item(p_title, p_price, p_number), size(p_size), type(p_type) {}
void changeSize(string p_size) {
size = p_size;
}
void changeType(string p_type) {
type = p_type;
}
void printInfo() {
cout << "Название: " << title << ", Цена: " << price << ", Количество на складе: " << number << ", Размер: " << size << ", Тип: " << type << endl;
}
};
int main() {
Item item1("Футбольный мяч", 20.0, 10);
Clothes clothes1("Футболка", 15.0, 20, "M", "Синяя");
Shoes shoes1("Кроссовки", 50.0, 15, "38", "Кроссовки");
Order order1(1111, 2, 35.0);
item1.printInfo();
clothes1.printInfo();
shoes1.printInfo();
order1.addItem(item1);
order1.addItem(clothes1);
order1.printInfo();
return 0;
}