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

Klasa abstrakcyjna jako typ argumentu metody

Ostatnio zmodyfikowano 2016-07-16 23:00
Autor Wiadomość
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):
C/C++
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):
C/C++
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:
C/C++
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?
P-150051
« 1 »
  Strona 1 z 1