Пишу программу,вылезает ошибка в строке про for
Пишу программу,вылезает ошибка в строке про for.Суть ошибки в том,что компилятор пишет"отсутствует оператор ++,соответствующий этим операндам std::string".Я пытался сделать так,чтобы при вводе(например Mercedes S-class),я мог вывести цену мерса,потом дать пользователю выбрать комплектацию и в итоге всё это сложить и вывести общую цену....
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
class wowi
{
private:
int m_bazovya_cena;
int m_cena_komplectacii;
std::string komplektacia;
public:
wowi(int cennik_bazovya,int cennik_komplectacii)
{
m_bazovya_cena = cennik_bazovya;
m_cena_komplectacii=cennik_komplectacii;
}
friend std::ostream& operator<<(std::ostream&out, const wowi&car);
friend std::istream& operator>>(std::istream&in, const wowi&car);
friend wowi operator+(const wowi&car1, const wowi&car2);
};
std::ostream& operator<<(std::ostream&out, const wowi&car)
{
out << car << std::endl;
return out;
}
//std::istream& operator>>(std::istream&in, const wowi&car)
//{
//
//}
wowi operator+(const wowi&car1, const wowi&car2)
{
return wowi(car1.m_bazovya_cena + car1.m_cena_komplectacii, car2.m_bazovya_cena + car2.m_cena_komplectacii);
}
int main()
{
setlocale(LC_ALL, "RUS");
std::vector<std::string>cars{"Mercedes S-class","BMW 7-series","AUDI A8"};
std::vector<int>cenniki_cars{17000,15000,12000 };
std::vector<std::string>komplectaciya{ "Базовая","Базовая люкс","Полулюкс","Максимальная" };
std::vector<int>cenniki_komplectacii{ 0,1500,5000,8000 };
std::cout << "Здравствуйте\nКакой автомобиль хотите преобрести???" << std::endl;
std::string vybor_auto;
std::cin >> vybor_auto;
for (vybor_auto, vybor_auto = "Mercedes", vybor_auto++)
std::cout << "Здравствуйте\nКакой автомобиль хотите преобрести???" << std::endl;
return 0;
}
Ответы (1 шт):
for (vybor_auto, vybor_auto = "Mercedes", vybor_auto++)
Начнем с того, что три части заголовка цикла должны разделяться точками с запятой...
for (vybor_auto; vybor_auto = "Mercedes"; vybor_auto++)
Первая часть не делает ничего, ее можно опустить...
for (; vybor_auto = "Mercedes"; vybor_auto++)
Вторая часть присваивает переменной vybor_auto значение "Mercedes" - вам точно нужно присваивание, а не сравнение?
И последняя часть - vybor_auto++. Для строк оператор ++ не существует. Так что его надо заменить.
На что? Для этого надо понять, что вы хотите сделать, а этого из вашего объяснения я понять не смог :(