niejednoznaczność przeciążonych operatorów

Odpowiedz

Emotikony
:D :) :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: ;) :!: :?: :idea: :arrow: :| :mrgreen:

BBCode włączony
[Img] włączony
[URL] włączony
Emotikony włączone

Przegląd tematu
   

Rozwiń widok Przegląd tematu: niejednoznaczność przeciążonych operatorów

niejednoznaczność przeciążonych operatorów

autor: neldam » 13 cze 2007, 11:23

WItam, mam problem z takim oto kodem :

Kod: Zaznacz cały

class bignum {
 
private:
//tu sa rózne składnki

public:
  bignum();
  ~bignum();
  bignum(double dbl);
  bignum(long lng);
  bignum(bignum&);
  
  operator double();
  operator long();


  //******************* operatory do dzialan arytmetycznych
  friend bignum operator+ (bignum& lft, bignum& rgh);
  friend bignum operator+ ( bignum& lft,   long rgh);
  friend bignum operator+ ( bignum& lft, double& rgh);
  bignum& operator+=(bignum& rgh);
  bignum& operator+=( long rgh);
  bignum& operator+=(double& rgh);

//podobnie jest dla odejmowania, mnożenia  i dzielenia

  bignum& operator= ( long rgh);
  bignum& operator= (double rgh);
  bignum& operator= (bignum& rgh);

 friend bignum ToBignum ( long liczba);
  friend bignum ToBignum (double& liczba, int prec=32);
//pozostałe metody
};
Jest to biblioteka bardzo dużych liczb.

Gdy w innym miejscu programu chę sobie zrobić
ob_bignum1 = ob_bignum2 + ob_bignum3;
wyskakuje błąd że operator przypisania jest niejednoznaczny
ma to związek z operatorem rzutowania double() i long() (po ich dodaniu wyskoczyły te błędy).

Czy mógłby ktoś mi powiedzieć czemu tak sie dzieje??
Z góry dziękuje

Na górę