Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Błąd po zakończeniu programu - "pure virtual function call"

Ostatnio zmodyfikowano 2012-11-15 17:12
Autor Wiadomość
RazzorFlame
Temat założony przez niniejszego użytkownika
Błąd po zakończeniu programu - "pure virtual function call"
» 2012-11-13 18:32:32
Otóż chciałem przetestować GUI które dotychczas zrobilem (Button'y, EditBox'y, Obsluga myszki itd.) wiec zrobilem sobie programik. Co najdziwniejsze, nie używam wgle funkcji wirtualnych w tym kodzie :0. Kodu chyba nie trzeba pokazywać bo zauważyłem że błąd (chyba) pojawia się wtedy kiedy źle (lub w ogóle) użyje referencji. NP. w funkcji która przypisuje tablice pikseli z jakiegoś obiektu typu sf::Image do sf::Sprite nie mialem referencji i wyskakiwal błąd. Kiedy dodalem to nie bylo błędu. I jakoś tak dziwnie bo przed instalacją MS .net nie wyskakiwał mi taki błąd kiedy robilem tak referencje. A właśnie czy może coś mieć w tym wspólnego to że nie używam extern "C" przy importowaniu z biblioteki do GUI do tego problemu. Podpowiedzcie coś :)

Edit:
Do czasu wyłączenia programu działa Okay :P
P-69145
crash
» 2012-11-13 19:12:32
Poka kawałek kodu, chociażby same nagłówki funkcji i w jakich plikach nagłówkowych są, bo to takie jeno gdybanie będzie
P-69157
DejaVu
» 2012-11-13 20:01:25
P-69164
RazzorFlame
Temat założony przez niniejszego użytkownika
» 2012-11-13 20:10:12
DejaVu dzieki ale oni tam piszą np o wywołaniu wirtualnej funkcji w konstuktorze klasy dziedziczącej inną. Ja jak pisałem NIC a NIC nie używam w tym kodzie funkcji wirtualnych. Dziwne.

Edit:
Hmm:

Następnie zostaje wykonana funkcja void wyswietlPole(Figura&) która przyjmuje jako parametr obiekt klasy Figura przez referencję. Tutaj również zostały wykonane odpowiednie metody dla obiektów klas pochodnych a nie metoda zgodna z obiektem jaki jest zadeklarowany jako parametr funkcji czyli float Figura::pole(). Takie działanie jest spowodowane przez przyjmowanie obiektu klasy Figura przez referencję. Gdyby obiekty były przyjmowane przez wartość (parametr bez &) zostałaby wykonana 3 krotnie metoda float Figura::pole() i 3 krotnie wyświetlona wartość -1.

Tekst (z końca) ze strony http://pl.wikipedia.org/wiki/Metoda_wirtualna. Coś to mi mówi ale ja przecież nie mam wirtualnych funkcji w klasach.
P-69167
RazzorFlame
Temat założony przez niniejszego użytkownika
» 2012-11-14 18:31:51
----------
INFO: Nie edytuje tamtej wiadomości bo ta dotyczy czegoś innego
----------

Zauważyłem że jak skasuje tę linijkę (w programie testowym) "img.LoadFromFile("nazwapliku.bmp");" to wtedy błąd nie wyskakuje. Co dziwne mam jeszcze jeden obiek sf::Image i nawet gdy on też wczytuje bitmape to błąd nie wyskakuje (no chyba że wczytuje tamtym Image). Wkurza mnie to bo nie mogę kontynuować pracy nad grą! (PS: Gdyby tu była taka buźka :angry: to z chęcią bym ją postawił :D)
P-69255
Admixior
» 2012-11-14 22:40:01
Podaj odwołania tej zmiennej i jakich funkcji używasz (jeśli są twoje to przydałyby się też definicje).
Ew. zamieść kawałek kodu.
Co dziwne mam jeszcze jeden obiek sf::Image i nawet gdy on też wczytuje bitmape to błąd nie wyskakuje (no chyba że wczytuje tamtym Image).
to oznacza tylko jedno - że coś z tym image robisz co nie powinieneś. I wrzucenie kawałka kodu lub podania szerszych info co z tym robisz jest niezbędne do pomocy.
P-69279
RazzorFlame
Temat założony przez niniejszego użytkownika
» 2012-11-15 17:12:04
Okazalo się ze tylko mi występuje ten błąd. Wieć problemu nie ma
P-69312
« 1 »
  Strona 1 z 1