Klasa abstrakcyjna jako typ argumentu metody
Ostatnio zmodyfikowano 2016-07-16 23:00
fokusx Temat założony przez niniejszego użytkownika |
Klasa abstrakcyjna jako typ argumentu metody » 2016-07-16 23:00:09 Znalazłem błąd: w pliku hpp nie dołączyłem pliku log.hpp __________________________________________________________________________ Witam, w pliku log.hpp zdefiniowałem 3 klasy (Log, NormalLog, ErrorLog). Log jest klasą abstrakcyjną (interfejs): class Log { public: virtual void operator ()( const GLchar * msg ) = 0; virtual void operator ()( const std::string msg ) = 0; };
Klasy NormalLog i ErrorLog wyglądają identycznie (różnią się ciałem): class ErrorLog : public Log { public: void operator ()( const GLchar * msg ); void operator ()( const std::string msg ); static void Write( const GLchar * msg ); static void Write( const std::string msg ); };
Problem pojawia się, gdy deklaruję / definiuję metodę klasy Texture, plik texture.hpp: class Texture { bool Initialize( const Bitmap & bitmap, Log * log,...); };
Wyświetla mi błąd: "deklaracja jest niezgodna z elementem "bool GameEngine::Texture::Initialize(const GameEngine::Texture::Bitmap &bitmap, <error-type> *log)". Nazwa zadeklarowanej metody oraz argumenty zgadzają się w .cpp i .hpp. W czym więc problem? |
|
« 1 » |