Это код, представляющий фракцию с оператором перегрузкой+ = оператор перегрузка C++
class Fraction
{
private:
int _counter, _denominator;
public:
Fraction(int _x, int _y);
Fraction & operator+=(int b)
{
_counter = _counter + b*_denominator;
return *this;
}
Fraction & operator-=(int b)
{
_counter = _counter - b*_denominator;
return *this;
}
};
Fraction::Fraction(int _x, int _y)
{
_counter = _x;
_denominator = _y;
}
void main()
{
Fraction *f = new Fraction(2, 4);
f += 5;
}
Может кто-нибудь сказать мне, почему оператор +=
перегрузка не работает?
Вы должны использовать '* е + = 5;' или 'f-> оператор + = (5),' ' –
f' является указателем на абсолютно нет причина. Это проблема. – juanchopanza
Почему вы используете 'new'? Используйте переменные с автоматическим хранилищем (т. Е. Стек), когда это возможно. – Kevin