Błąd przy konstruktorze konwersji

0

Witam, chciałem stworzyć konstruktor konwertujący obiekt klasy numer na obiekt klasy zespolona. Jednak podczas kompilacji wyskakują mi dwa błędy, o deklaracji klasy oraz o o tym, że obiekt klasy numer jest niekompletnym typem. Jest to trochę zmodyfikowany przykład z Symfonii jednak przepisując cały przykład również miałem te błędy. Proszę o pomoc w usunięciu tych błędów.

class numer;
class zespolona
{
private:
    double r;
public:
    zespolona(double a = 5)
    {
        r = a;
    }
    zespolona(numer tester)
    {
        r = tester.z;
    }
};
class numer
{
private:
    double z;
    friend zespolona::zespolona(numer tester);
public:
    numer(double asd = 5)
    {
        z = asd;
    }
};
1

Przenieś definicje metody poza klasę.

0

Ok podziałało. Czyli jak robię konwersję z klasy na klasę przez konstruktor/funkcję to definicja konstruktora/funkcji musi być na zewnątrz tak?

1

Nie, kiedy próbujesz odwołać się do składowych klasa ma być już w pełni zdefiniowana.

0

Ah, faktycznie jak wróciłem to deklaracji przyjaźni to zrozumiałem. Dziękuję za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1