Witam. Mianowicie mam taki problem:
W konstruktorze pewnego obiektu chce tworzyć obiekty innych klas (a dokładniej wskaźniki do tych obiektów). Napisałem coś takiego:
C_tlo * ekran;
C_tlo * plansza;
C_zaba * zabaa;
To są pola klasy której w konstruktorze chce tworzyć obiekty klasy c_tlo oraz C_zaba.
Konstruktor wygląda tak:
C_tlo * ekrann;
ekrann = new C_tlo;
C_tlo * plansza;
plansza = new C_tlo("plansza.bmp");
C_zaba * zabaa;
zabaa = new C_zaba();
I dalej chciałbym się odwoływać do tych obektów w metodach (klasy tej co jest konstruktor).
Kompilator wszystko kompiluje, nie wyrzuca błędu. Program uruchamia się ale działa tak jakby przerywał działanie w momencie kiedy napotka na odwołanie sie do utworzonego obiektu.
Powiedzmy że mamy taką sytuację:
void C_gra::p(){
Sleep(2000);
zabaa->polozenie_x();
};
Wynikiem takiego kodu jest odpalenia okna programu. Odczekanie 2s i zamknięcie okna.
Natomiast gdy mam kod:
void C_gra::p(){
zabaa->polozenie_x();
Sleep(2000);
};
To następuje odpalenie okna i od razu zamknięcie. (Nie ma tych 2 sekund przed zamknięciem).
Także pytanie: Jak powinno się tworzyć obiekty w konstruktorze klasy? Gdzie może leżeć błąd.
Ogólnie to program który napisałem działał. Tylko ze wszystkie obiekty miałem tworzone w mainie. i w mainie odwoływałem się do poszczególnych metod i pól. Postanowiłem to wszystko przerzucić do konstruktora gry. No i z jednej strony kompiluje sie i dziala a z drugiej nie działa. Gdzie moze leżeć problem?
Od razu mówie że nie jestem jakimś orłem z programowania.
Pozdrawiam.