borland c++ 4.52 ambiguity between замучал
От: v0xel Россия  
Дата: 07.04.05 06:39
Оценка:
Есть мой класс TLinear, имеющий operator double().

Есть библиотечный классы TTime, TDate, имеющие разные операторы +, — и т.д.

дык везде где у меня есть выражения вида double — TLinear, или TLinear + TLinear и т.д.
он гад ругается

Error SOURCE\TPAGE.CPP 122: Ambiguity between 'operator +(long,const TTime &)' and 'TLinear::operator double() const' in function TPage::Calculate()
Error SOURCE\TPAGE.CPP 123: Ambiguity between 'operator +(long,const TTime &)' and 'TLinear::operator double() const' in function TPage::Calculate()
Error SOURCE\TPAGE.CPP 132: Ambiguity between 'operator +(long,const TTime &)' and 'TLinear::operator double() const' in function TPage::Calculate()
Error SOURCE\TPAGE.CPP 133: Ambiguity between 'operator +(long,const TTime &)' and 'TLinear::operator double() const' in function TPage::Calculate()
Error SOURCE\TPAGE.CPP 301: Ambiguity between 'operator -(const TDate &,int)' and 'TAngle::operator double() const' in function TPage::Print(TDC &,int &)
Error SOURCE\TPAGE.CPP 377: Ambiguity between 'operator -(long,const TTime &)' and 'TAngle::operator double() const' in function TPage::Print(TDC &,int &)
Error SOURCE\TPAGE.CPP 378: Ambiguity between 'operator +(const TTime &,long)' and 'TAngle::operator double() const' in
Error SOURCE\TPAGE.CPP 546: Ambiguity between 'operator -(const TDate &,int)' and 'TAngle::operator double() const' in function TPage::GetLForAngle(unsigned int,TIntList *)
Error SOURCE\TPAGE.CPP 557: Ambiguity between 'operator -(const TDate &,int)' and 'TAngle::operator double() const' in function TPage::GetLForAngle(unsigned int,TIntList *)

как можно это поправить ?

PS:
заметьте написал версию компилятора, здесь еще не поддерживаются пространства имен.
Re: borland c++ 4.52 ambiguity between замучал
От: Danchik Украина  
Дата: 07.04.05 06:53
Оценка:
Здравствуйте, v0xel, Вы писали:

V>Есть мой класс TLinear, имеющий operator double().


V>Есть библиотечный классы TTime, TDate, имеющие разные операторы +, — и т.д.


V>дык везде где у меня есть выражения вида double — TLinear, или TLinear + TLinear и т.д.

V>он гад ругается

TTime и double это тот же тип, вот компилятор и не может продуплится какой оператор использовать
Re[2]: borland c++ 4.52 ambiguity between замучал
От: v0xel Россия  
Дата: 07.04.05 07:48
Оценка:
Здравствуйте, Danchik, Вы писали:


D>TTime и double это тот же тип, вот компилятор и не может продуплится какой оператор использовать


classlib/time.h

typedef unsigned HourTy;
typedef unsigned MinuteTy;
typedef unsigned SecondTy;
typedef unsigned long ClockTy;

class _BIDSCLASS TTime
{

инкапсулирует эти тайпдефы...

почему double ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.