hi,
I'm studing the + and the = operator overloading to make something like obj1 = obj2 + obj3, but my code wont run here is it:
please see the main program at the botton
please excuse my poor englishCode://class definition class NRacionales{ friend ostream &operator<<(ostream &, const NRacionales &); public: NRacionales(int = 1, int = 1); NRacionales operator+(const NRacionales &); NRacionales &operator=(NRacionales &); . . private: int numerador; int denominador; } //function definitions //definition of << overloading not need it here NRacionales::NRacionales(int num, int den) { numerador = num; denominador = den; } //+ operator overloaded NRacionales NRacionales::operator+(const NRacionales &derecha) { //returns an instance of the class return NRacionales((numerador * derecha.denominador) + (derecha.numerador * denominador), (denominador * derecha.denominador)); } //= operator overloaded NRacionales &NRacionales::operator=(NRacionales &derecha) { numerador = derecha.numerador; denominador = derecha.denominador; return *this; } //main int main() { NRacionales n1(8,4); NRacionales n2(9,3); NRacionales n4; //this block of code works fine cout << "N1= " << n1 << endl; cout << "N2= " << n2 << endl; cout << "N4= " << n4 << endl; //this line of code works fine cout << "\nn1 + n2 = " << n1 + n2 << endl; //this dont work , why? n4 = n1 + n2; cout << "\nn4 = n1 + n2 = " << n4 << endl; system("pause"); return 0; } ok here is the error message the compiler generates(dev c++): 28 C:\programas c++\ejer8_17\main.cpp no match for `NRacionales& = NRacionales' operator 28 C:\programas c++\ejer8_17\fracciones.h candidates are: NRacionales& NRacionales::operator=(NRacionales&)



LinkBack URL
About LinkBacks


