Wpis z mikrobloga

VS2012 wyrzuca mi taki błąd 3 programie #cpp na jutro :/ (w sumie to na dzisiaj)

d:\programy\dropbox\pwr\obiektowe\complex\complex\complex.cpp(131): error C2666: "operator +" : przeciążenia 2 mają podobne konwersje


1> d:\programy\dropbox\pwr\obiektowe\complex\complex\complex.cpp(14): może to być "complex operator +(const complex &,const complex &)"


1> lub "wbudowany operator+(int, double) języka C++"


1> podczas próby dopasowania listy argumentów "(int, complex)"

kod:

linia 131: c=5+a*b;


i wcześniej:

class complex { (..)


friend complex operator+ (const complex &a, const complex &b);


(...)


};



complex operator+ (const complex &a, const complex &b) {


complex result;


result.re = a.re + b.re;


result.im = a.im + b.im;


return result;


}

Pomożecie, proszę? :)
  • 7
@KrzaQ2: o kurczę, nie zauważyłem odpowiedzi.

Właśnie takie było moje zadanie, żebym sam napisał klasę... I nie mogę wykorzystać Twojego rozwiązania, musi koniecznie być w formie c=5+a*b :(
@KrzaQ2: najgorzej, wystarczyło wywalić consty, bo przecież w konstruktorze klasy zamienia mi liczby różnych typów na zespolone już :/ Co nie zmienia faktu, że gdyby nie Ty, to chyba bym się nie położył spać :)