ďťż

Ładny brzuch

Witam. Przerabiam właśnie moją "grę" na obiektową i mam niemały problem, otóż:

Mam 3 pliki: main.cpp, field.h, field.cpp

main.cpp załącza pliki Irrlicht.h oraz field.h
W tymże pliku też deklaruję i definiuję wskaźniki na podstawowe obiekty irrlichta ( IVideoDriver, ISceneManager, IrrlichtDevice)

W klasie opisanej na plikach field.h/.cpp mam funkcję, która odwołuje się do funkcji rysujących texture przez wskaźnik na IVideoDriver i właśnie tu jest problem

Aby klasa widziała wskaźnik, próbowałem już w jej konstruktorze podać referencję do wskaźnika utworzonego w pliku main.cpp (i wtedy nei powinno być problemów z widocznością). Jednak aby to zrobić, potrzebuję zadeklarować wskaźnik na IVideoDriver* aby trzymać tam adres pobrany przez wyłuskanie referencji.

Jednak kompilator się pluje bo nie potrafi zidentyfikować typu IVideoDriver*. Początek mojej klasy wygląda następująco:

class Field{ private: IVideoDriver* mdriver; <- tu się pluje

Efektem próby kompilacji jest
error C2143: syntax error : missing ';' before '*'

Wie ktoś jak można zrobić aby plik field.h zaczął rozpoznawać ten typ wskaźnika?



Przed definicją klasy dodaj
class IVideoDriver;

KlyYmek: wtedy kompilator zamiast powyższego erroru zwróci:

.\main.cpp(26) : error C2872: 'IVideoDriver' : ambiguous symbol
could be 'd:\xnyoop\field.h(7) : IVideoDriver'
or 'e:\programowanie\irrlicht-1.2\include\IVideoDriver.h(136) : irr::video::IVideoDriver'
.\main.cpp(26) : error C2440: 'initializing' : cannot convert from 'irr::video::IVideoDriver *' to 'IVideoDriver *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

dodaj plik Irrlicht.h w pliku definicji twojej klasy, ale w cpp również :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •