Делаю программу на с++. Вылезает ошибка

Пишу прогу, вылезает ошибка, что отсутствуют экземпляры конструктора cars::cars, соответствующие списку аргументов. Делал всё по аналогичному коду.

#include <iostream>

using std::cout;
using std::endl;
using std::cin;

class cars
{
private:
    int m_nds=((m_cena/100)*15);
    int m_cena;
    int m_nishtyaki;
public:
    cars(int cena,int nishtyaki )
    {
        cena = m_cena;
        nishtyaki = m_nishtyaki;
    }

    int get_m_cena() const
    {
       return m_cena ;
    }

    friend cars operator+(const cars &cena, const cars &nishtyaki);
};

cars operator+(const cars &cena, const cars &nishtyaki)
{
    return cars(cena.m_cena + nishtyaki.m_nishtyaki+cena.m_nds);
}


int main()
{
    cout << "Введите ценник на BMW" << endl;
    int cennik_bmw;
    cin >> cennik_bmw;
    cout << "Введите ценник на Mercedes" << endl;
    int cennik_benza;
    cin >> cennik_benza;
    setlocale(LC_ALL, "rus");
    cars benz(cennik_benza,1000);
    cars bmw(cennik_bmw,1000);
    cars summa = benz + bmw;
    cout <<"Вы должны за машины "<< summa.get_m_cena()<<" долларов" <<endl;
    return 0;
}

Ответы (1 шт):

Автор решения: Harry

Смотрите - у вас есть два странных места:

Первое -

int get_m_cena() const
{
   return ;
}

Вы же обязались вернуть int - так почему не возвращаете? :) наверное, тут должно быть return m_cena;?

А второе - вот:

cars operator+(const cars &cena, const cars &nishtyaki)
{
    return cars(cena.m_cena + nishtyaki.m_nishtyaki+cena.m_nds);
}

Вы вроде бы возвращаете некий cars (логику сложения автомобилей оставим на другой вопрос...) - но передаете ему только одно значение -

cena.m_cena + nishtyaki.m_nishtyaki+cena.m_nds

В то время как для создания автомобиля вы обязаны передать ДВА параметра:

cars(int cena,int nishtyaki )

другого конструктора, с одним параметром, у вас нет.

Так что решите, какой cars должен возвращаться, с какими двумя параметрами - и все получится.

Ну, как получится... Скомпилируется. А как будет работать - это второй вопрос, на это я не пытался смотреть - для этого надо знать, что программа должна делать.

→ Ссылка