Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Перегрузка операторов ввода/вывода

6.7K
18 марта 2007 года
Ginza9
96 / / 30.06.2006
Пишу класс для работы с дробями. В процессе написания возникают непонятные ошибки.


Класс:

Код:
class Decimal {
    private:
        int int_part,num,denom,nod;
    public:
        Decimal() { int_part=0;num=0;denom=0;nod=0; }
        Decimal(int a,int b,int c) { int_part=a;num=b;denom=c; }
        friend istream &operator>>(istream &stream,Decimal &obj);
        friend ostream &operator<<(ostream &stream,Decimal &obj);
        Decimal operator+(Decimal &obj);
        Decimal &operator=(Decimal &obj);
        Decimal operator-(Decimal &obj);
        Decimal operator*(Decimal &obj);
        Decimal operator/(Decimal &obj);   
        void Set_nod();
        int NOD(int a,int b);
};


Перегрузка оператор + и оператора выводв:

Код:
Decimal Decimal::operator+(Decimal &obj) {
    Decimal tmp;
    tmp.int_part=0; // на это внимания не обращайте
    tmp.num=num*obj.denom+obj.num*denom;
    tmp.denom=denom*obj.denom;
    tmp.nod=NOD(tmp.num,tmp.denom);
    return tmp;
}

ostream &operator<<(ostream &stream,Decimal &obj) {
    if(obj.nod>0) {
        obj.num/=obj.nod;
        obj.denom/=obj.nod;
    }
    if(flag=='Y') {
        if(obj.denom==1) stream << obj.int_part + obj.num;
        else stream << obj.int_part << " " << obj.num << "/" << obj.denom;
    }
    else {
        if(obj.denom==1) stream << obj.num;
        else stream << obj.num << "/" << obj.denom;
    }
    return stream; 
}



Функция main

 
Код:
void main() {
    Decimal A(0,3,2),B(0,2,3);
    cout << A+B; // ошибка возникает здесь
}


Переменная flag отвечает за то, вводилась ли целая часть или нет.
Ошибка:
Error E2094 decimal.cpp 104: 'operator<<' not implemented in type 'ostream' for arguments of type 'Decimal' in function main()
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог