SFML - problem z konwersją
Ostatnio zmodyfikowano 2011-12-03 16:25
Dawidsoni Temat założony przez niniejszego użytkownika |
SFML - problem z konwersją » 2011-12-02 23:55:35 Witam. Napisałem własną klasę i chcę, aby można było ją skonwertować na klasę Sprite, tak żeby do funkcji można było przesłać obiekt tej klasy. Kod wygląda tak: część main.cpp Obiekt obiekt1; Okno.Draw( obiekt1 );
część Obiekt.h operator Sprite() { return * sprajt; } Według tego, co myślę, metoda Draw klasy RenderWindow oczekująca obiekt klasy Sprite, powinna zadziałać, dzięki konwersji klasy Obiekt na klasę Sprite. Jednak są takie błędy kompilacji: error: invalid abstract return type for member function 'dw::Obiekt::operator sf::Drawable()'| note: because the following virtual functions are pure within 'sf::Drawable':| note: virtual void sf::Drawable::Render(sf::RenderTarget&) const| error: invalid abstract return type for member function 'dw::Obiekt::operator sf::Drawable()'| note: since type 'sf::Drawable' has pure virtual functions| error: cannot allocate an object of abstract type 'sf::Drawable'| note: since type 'sf::Drawable' has pure virtual functions| error: cannot allocate an object of abstract type 'sf::Drawable'| note: since type 'sf::Drawable' has pure virtual functions|
Proszę o pomoc i wytłumaczenie. |
|
akwes |
» 2011-12-03 00:17:15 Ale Ty tutaj chcesz przeciążyć operator a nie zrobić własną konwersję?
Używasz przestrzeni nazw? Czy może sf::Sprite nie powinno być? |
|
Dawidsoni Temat założony przez niniejszego użytkownika |
» 2011-12-03 10:17:36 A jaka różnica? Z tego co dotąd rozumiałem przeciążenie operatora ma powodować zamianę typu Obiekt na typ Sprite. (konwersję). Jak inaczej mogę to zrobić, żeby działało? |
|
DejaVu |
» 2011-12-03 11:45:12 Jak tworzysz własny obiekt i chcesz używać SFML-a to używaj klas, które dostarcza SFML. Przykład:
CObiekt { public: sf::Sprite obrazek; };
CObiekt obiekt; oknoAplikacji.Draw( obiekt.obrazek );
|
|
Dawidsoni Temat założony przez niniejszego użytkownika |
» 2011-12-03 16:25:40 A nie mogę zrobić tak, aby w funkcji Draw zamiast pisać "obiekt.obrazek", mógłbym pisać "obiekt"? |
|
« 1 » |