Я работаю над Упражнением 11.11 на странице 498 C ++. Как программировать 8-е издание.
Вопрос в следующем: создайте класс RationalNumber (дроби) со следующими возможностями: a) создайте конструктор, который предотвращаетзнаменатель 0 в дроби, уменьшает или упрощает дроби, которые не находятся в сокращенной форме, и избегает отрицательных знаменателей б) перегрузка операторов сложения, вычитания, умножения и деления для этого класса в) перегрузка операторов реляции и равенства для этого класса
Я работаю над перегрузкой оператора сложения.
Я выполнил (а), но не получаю никакой информации о перегрузке.Я искал в Интернете лучшее объяснение, но я просто не понимаю, как перегружать операторы пользовательскими типами.
Каждый RationalNumber имеет числитель и знаменатель, которые объединяются, чтобы образовать дробь.Мне нужно сложить их вместе, найти общий знаменатель и т. Д.
Мой RationalNumber.h выглядит так:
// RationalNumber.h
// RationalNumber class definition
#ifndef RATIONALNUMBER_H
#define RATIONALNUMBER_H
#include <iomanip>
#include <iostream>
#include <string>
using namespace std;
class RationalNumber
{
public:
RationalNumber( int numerator, int denominator);
void setNumerator(int numerator);
int getNumerator();
void setDenominator(int denominator);
int getDenominator();
void printRationalNumber();
RationalNumber operator+(Rationalnumber a, RationalNumber b);
private:
int numerator; //top number
int denominator; //bottom number
};
#endif
Теперь, просто сосредоточив внимание на моем операторе + функция:
RationalNumber RationalNumber::operator+(RationalNumber a, RationalNumber b)
{
}
Visual Studio сообщает, что в классе Rationaloperator нет члена "operator +"
Любая помощь будет принята.
Спасибо, Эрик
ОБНОВЛЕНИЕ:
Теперь у меня есть:
RationalNumber operator+(Rationalnumber a);
и
RationalNumber RationalNumber::operator+(RationalNumber a)
{
}
Я получаю ошибку: замедление несовместимо ..... (а)