[C++] Konstruktor konwertujący.
: 5 maja 2013, o 16:02
Witam!
Na wstępie chciałbym podziękować koledze Afishowi za pomoc przy ostatnim problemie -> klik. Teraz niestety zmuszony jestem Was prosić o pomoc przy kolejnym.
Otóż:
Chcąc przypomnieć sobie jak działa konstruktor konwertujący, postanowiłem napisać program zawierajacy dwie klasy - Szyba i Okno. Zamierzałem konwertować obiekt klasy Szyba na obiekt klasy Okno wychodząc z założenia, że szyba jest szczególnym przypadkiem okna które nie ma ram okiennych - niekoniecznie ma to sens, ale i sam program służyć ma tylko przypomnieniu jak konwersja się odbywa.
Oto kody:
plik main.cpp
Plik Okno.h:
Plik Okno.cpp:
Plik Szyba.h:
Plik Szyba.cpp:
Idea jest następująca - tworzę konstruktor klasy Okno przyjmujacy jako argument obiekt klasy Szyba, dzięki temu że klasa Szyba jest zaprzyjaźniona z owym konstruktorem klasy Okno może on (a przynajmniej powinien móc, o ile program by działał) używać składowych prywatnych klasy Szyba jakby były publiczne.
Otrzymuję następujący błąd kompilacji:
Problem w tym, że nie bardzo wiem, jak sprawić by klasa Szyba wiedziała, że Okno jest nazwą klasy i na odwrót. Różne kombinacje z deklaracjami zapowiadajacymi (na górze każdego pliku, wspomina o nich Grębosz w Symfonii) lub ich brakiem (ujęcie w komentarz) nie powiodły się i dają podobne błędy. ,,Extern class" również nie pomaga.
Z góry dziękuję za pomoc przy rozwiązaniu problemu.
Pozdrawiam,
Pneumokok.
Na wstępie chciałbym podziękować koledze Afishowi za pomoc przy ostatnim problemie -> klik. Teraz niestety zmuszony jestem Was prosić o pomoc przy kolejnym.
Otóż:
Chcąc przypomnieć sobie jak działa konstruktor konwertujący, postanowiłem napisać program zawierajacy dwie klasy - Szyba i Okno. Zamierzałem konwertować obiekt klasy Szyba na obiekt klasy Okno wychodząc z założenia, że szyba jest szczególnym przypadkiem okna które nie ma ram okiennych - niekoniecznie ma to sens, ale i sam program służyć ma tylko przypomnieniu jak konwersja się odbywa.
Oto kody:
plik main.cpp
Ukryta treść:
Ukryta treść:
Ukryta treść:
Ukryta treść:
Ukryta treść:
Otrzymuję następujący błąd kompilacji:
Ukryta treść:
Z góry dziękuję za pomoc przy rozwiązaniu problemu.
Pozdrawiam,
Pneumokok.