Cześć.
Mam szybkie i pewnie trywialne pytanie. Wykładowca na wstępie do C++ dał nam pdf-a. Podczas nauki z niego zauważyłem, że nigdzie nie zdefiniował, ani nie zadeklarował metody drukuj(); dla klasy, a mimo to ją użył. Próbowałem samemu ją napisać, ale na pewno nie da się tego tak zrobić, jak chciałem.
Więc jak ją zdefiniować?
#include <iostream>
#include <cstdlib>
class zespolone
{
int re, im;
public:
zespolone(int, int);
void drukuj();
friend zespolone operator+(zespolone, zespolone );
};
zespolone::zespolone(int m, int n)
{
re = m;
im = n;
}
zespolone operator+(zespolone z3, zespolone z4)
{
zespolone z5(0, 0);
z5.re = z3.re + z4.re;
z5.im = z3.im + z4.im;
return z5;
}
void zespolone::drukuj()
{
/* -------------------- To jest zle ------------------------- */
std::cout << "Wynik to: (" << zespolone.re << "," << zespolone.im << ")" << std::endl;
}
int main(void) {
zespolone z1(1, 2), z2(4, 10), z3(0, 0), z4(0, 0);
z3 = z1 + z2;
// z4 = z3.operator+(z2); teraz tego nie mozna wywolac, bo nie jest to metoda klasy
//std::cout << "z3 = (" << z3.re << "," << z3.im << ")" << std::endl;
z3.drukuj();
return 0;
}