или если переменные, объявленные в case 5 еще где-то используются, можно вынести за switch объявление.
Возьмите в фигурные скобки:
auto carBought = cars.buyCar(cars.id);
программа прерывается и ловит исключение Вызвано исключение: нарушение доступа для чтения.
_Mycont было nullptr.
case 5:
system("cls");
std::cout << "Введите свое имя: ";
std::cin >> client.name;
std::cout << std::endl;
clientBase.push_back(client); // добавляем клиента в базу (у каждого клиента есть свойство - гараж(std::vector<Client> clientBase;))
cars.printCatalog();
std::cout << "\nВведите ID автомобиля, который хотите приобрести: ";
std::cin >> cars.id;
system("cls");
std::cout << "Поздравляем, " << client.name << "! Вы приобрели автомобиль под номером " << cars.id << ".";
auto carBought = cars.buyCar(cars.id);
client.garage.push_back(carBought);
Car Car::buyCar(int buyId) {
auto car = std::find_if(std::begin(catalog), std::end(catalog), [buyId](Car c) { return c.id == buyId; });
catalog.erase(car);
return *car;
}
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка (активно) E0546 передача управления в обход инициализации
Ужас какой-то с свойствами:Да, бред получается, перенес все. Немного запутался.
верните car из Car::buyCar и ее добавляйте:
auro carBought = cars.buyCar(cars.id)
client.garage.push_back(carBought);
auto carBought = cars.buyCar(cars.id);
client.garage.push_back(carBought);
catalog.erase(carBought);
auto Car::buyCar(int buyId) {
auto car = std::find_if(std::begin(catalog), std::end(catalog), [buyId](Car c) { return c.id == buyId; });
return car;
}
вот разве clientBase - свойство клиента?
А можно как-то полный код, а то я уже не понимаю ничего?
case 5:
system("cls");
std::cout << "Введите свое имя: ";
std::cin >> client.name;
std::cout << std::endl;
client.clientBase.push_back(client); // добавляем клиента в базу (у каждого клиента есть свойство - гараж(std::vector<Client> clientBase;))
cars.printCatalog();
std::cout << "\nВведите ID автомобиля, который хотите приобрести: ";
std::cin >> cars.id;
system("cls");
std::cout << "Поздравляем, " << client.name << "! Вы приобрели автомобиль под номером " << cars.id << ".";
// добавление купленного автомобиля в гараж клиента ?
client.garage.push_back(cars);
cars.buyCar(cars.id); // удаление автомобиля из каталога
class Car {
public:
int id;
double price;
std::string color;
double speed;
std::vector<Car> catalog;
std::vector<std::string> carColors{ "white", "black", "red", "blue", "green", "yellow", "purple", "gray" };
Car();
Car(int id, double price, std::string color, double speed);
void setCatalog();
void printCatalog(double filterPrice = 6.50, double filterSpeed = 0);
void buyCar(int buyId);
};
void Car::buyCar(int buyId) {
auto car = std::find_if(std::begin(catalog), std::end(catalog), [buyId](Car c) { return c.id == buyId; });
catalog.erase(car);
}
class Client: public Car {
public:
std::string name;
std::vector<Car> garage;
std::vector<Client> clientBase;
Client();
Client(std::string name, std::vector<Car> garage);
};
И словами можете описать кратко, что должно происходить?
cars.buyCar(cars.id);
))system("cls");
std::cout << "Введите свое имя: ";
std::cin >> client.name;
std::cout << std::endl;
client.clientBase.push_back(client); // добавляем клиента в базу (у каждого клиента есть свойство - гараж(std::vector<Client> clientBase; std::vector<Car> garage;))
cars.printCatalog();
std::cout << "\nВведите ID автомобиля, который хотите приобрести: ";
std::cin >> cars.id;
system("cls");
std::cout << "Поздравляем, " << client.name << "! Вы приобрели автомобиль под номером " << cars.id << ".";
// добавление купленного автомобиля в гараж клиента ?
cars.buyCar(cars.id); // удаление автомобиля из каталога
Вариант 1: не удаляйте элемент, помечайте проданным (или введите соглашение, что допустим, машины с id = -1 - проданы)
Вариант 2: используйте std::map
Сar
. Да и переписывать довольно много придется. for (i=0; i //цикл по переменной j, в котором перебираем элементы внутри строки
for (j=0; j cin>>a[i][j]; //ввод элемента матрицы
cout<<"матрица А:\n";
for (i=0; i {
for (j=0; j cout< cout< }
for (S=i=0; i for (j=0; j S+=a[i][j];