[SFML-2.1] NonCopyable error - użycie zmiennej typu RenderWindow w tworzeniu obiektu klasy
Ostatnio zmodyfikowano 2014-07-19 19:43
Mistrzu350 Temat założony przez niniejszego użytkownika |
[SFML-2.1] NonCopyable error - użycie zmiennej typu RenderWindow w tworzeniu obiektu klasy » 2014-07-19 18:31:03 Witam! :) Podczas moich dzielnych zmagań z c++ i biblioteką sfml natrafiłem na kolejny problem. klasa.cpp Game.h class Game { RenderWindow win; Event ev; public: void Engine( RenderWindow & window, Event & event ); };
Game.cpp void Game::Engine( RenderWindow & window, Event & event ) { win = window; ev = event; } main.cpp int main() { (...) game.Engine( win, ev ); (...) } LOG ..\..\..\..\..\SFML-2.1\include\SFML\System\NonCopyable.hpp||In member function 'sf::Window& sf::Window::operator=(const sf::Window&)':| ..\..\..\..\..\SFML-2.1\include\SFML\System\NonCopyable.hpp|79|error: 'sf::NonCopyable& sf::NonCopyable::operator=(const sf::NonCopyable&)' is private| ..\..\..\..\..\SFML-2.1\include\SFML\Window\Window.hpp|57|error: within this context| ..\..\..\..\..\SFML-2.1\include\SFML\Graphics\RenderWindow.hpp||In member function 'sf::RenderWindow& sf::RenderWindow::operator=(const sf::RenderWindow&)':| ..\..\..\..\..\SFML-2.1\include\SFML\Graphics\RenderWindow.hpp|44|note: synthesized method 'sf::Window& sf::Window::operator=(const sf::Window&)' first required here | ..\..\..\..\..\SFML-2.1\include\SFML\System\NonCopyable.hpp||In member function 'sf::RenderTarget& sf::RenderTarget::operator=(const sf::RenderTarget&)':| ..\..\..\..\..\SFML-2.1\include\SFML\System\NonCopyable.hpp|79|error: 'sf::NonCopyable& sf::NonCopyable::operator=(const sf::NonCopyable&)' is private| ..\..\..\..\..\SFML-2.1\include\SFML\Graphics\RenderTarget.hpp|51|error: within this context| ..\..\..\..\..\SFML-2.1\include\SFML\Graphics\RenderWindow.hpp||In member function 'sf::RenderWindow& sf::RenderWindow::operator=(const sf::RenderWindow&)':| ..\..\..\..\..\SFML-2.1\include\SFML\Graphics\RenderWindow.hpp|44|note: synthesized method 'sf::RenderTarget& sf::RenderTarget::operator=(const sf::RenderTarget&)' first required here | C:\Users\nikt\Desktop\cppex\projekt\src\Game.cpp||In member function 'void Game::Engine(sf::RenderWindow&, sf::Event&)':| C:\Users\nikt\Desktop\cppex\projekt\src\Game.cpp|22|note: synthesized method 'sf::RenderWindow& sf::RenderWindow::operator=(const sf::RenderWindow&)' first required here |
|
|
pekfos |
» 2014-07-19 18:34:44 Nie możesz kopiować obiektu okna. Użyj referencji. |
|
Mistrzu350 Temat założony przez niniejszego użytkownika |
» 2014-07-19 18:37:47 Wiem, że nie mogę użyć kopi. Myślałem że jak dam "&" to to już jest referencja. Nie? To nie wiem jak to napisać. Mógłbyś mi pokazać? :) |
|
pekfos |
» 2014-07-19 18:39:05 class Game { RenderWindow & win;
|
I użyj listy inicjalizacyjnej konstruktora. |
|
Mistrzu350 Temat założony przez niniejszego użytkownika |
» 2014-07-19 19:43:15 Choć pojęcie "listy inicjalizacyjnej konstruktora" okazało się być dla mnie nowym jakoś dałem radę :) Bardzo dziękuję za pomoc Ostateczny stan konstruktora gdyby ktoś kiedyś szukał... Game::Game( RenderWindow & window, Event & event ) : win( window ) , ev( event ) { }
|
|
« 1 » |