Пардон, ошибка пергрузки операций
От: LaptevVV Россия  
Дата: 29.04.03 16:24
Оценка:
Привет всем!
Есть текст VC6


#include <iostream>

using namespace std;

enum Decade 
    { zero, one, two, three, four, five, six, seven, eight, nine };

Decade operator+=(Decade &a, Decade b)
{  return Decade(a = Decade((a+b)%10)); }

ostream& operator<<(ostream &out, const Decade &a) 
{ switch(a)
    { case zero  :     out<<"zero";     break;
      case one   :     out<<"one";       break;
      case two   :     out<<"two";       break;
      case three :     out<<"three";     break;
      case four  :    out<<"four";      break;
      case five  :     out<<"five";      break;
      case six   :     out<<"six";       break;
      case seven :     out<<"seven";    break;
      case eight :     out<<"eight";     break;
      case nine  :     out<<"nine";      break;
    }
    return out;
}

Decade operator+(Decade a, Decade b)
{ Decade t = a; return Decade(t+=b); }

Decade operator+(Decade a, int b)
{  Decade t = a; return Decade(t+=Decade(b%10));}

Decade operator+(int a, Decade b)
{  Decade t = Decade(a%10); return Decade(t+=b);}

int main()
{    Decade A = seven, B = six;
    cout <<(A+=B) << endl;
    cout <<1+B << endl;
    cout <<B+1 << endl;              //--выдает ошибку С2593
    return 0;
}


error C2593: 'operator +' is ambiguous
типа повторное определение операции

Это баг VC6 или моих мозгов?
Ответ можно намылить Laptev@astu.astranet.ru
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.