Ошибка при перегрузке оператора “+”

174
09 мая 2019, 15:10

oop.h

#pragma once
class Money
{
private:
    unsigned long long rubles;
    unsigned char penny;
public:
    Money operator+(Money &v1);
};

oop.cpp

Money Money::operator+(Money &v1)
{
    return Money(this->rubles+v1.rubles);
}

Ошибка под "this": Не существует подходящего конструктора для преобразования из "unsigned long long" в "Money".

Answer 1

Вам нужно написать конструктор, который будет принимать unsigned long long.

Суда по вашему классу, это должно быть что-то вроде

Money(unsigned long long rubles, unsigned char penny = 0)
:rubles(rubles),penny(penny){}

Только вот почему вы при суммировании суммируете только рубли? А копейки?

READ ALSO
… в параметрах шаблонной функции

… в параметрах шаблонной функции

В чём разница между следующими объявлениями? Как правильно вызывать оба варианта?

152
Ошибка при определении функции xor

Ошибка при определении функции xor

ругается на месте bool xor

159
Неоднозначный вызов шаблонных функций

Неоднозначный вызов шаблонных функций

Как правильно вызывать каждую из функций? Почему в первом случае вызывается первая функция, а во втором - вторая?

134