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

[SFML-2.1] NonCopyable error - użycie zmiennej typu RenderWindow w tworzeniu obiektu klasy

Ostatnio zmodyfikowano 2014-07-19 19:43
Autor Wiadomość
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
C/C++
class Game
{
    RenderWindow win;
    Event ev;
   
public:
    void Engine( RenderWindow & window, Event & event );
};

Game.cpp
C/C++
void Game::Engine( RenderWindow & window, Event & event )
{
    win = window;
    ev = event;
}
main.cpp
C/C++
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 |
P-114071
pekfos
» 2014-07-19 18:34:44
Nie możesz kopiować obiektu okna. Użyj referencji.
P-114072
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ć? :)
P-114073
pekfos
» 2014-07-19 18:39:05
C/C++
class Game
{
    RenderWindow & win;
I użyj listy inicjalizacyjnej konstruktora.
P-114074
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ł...
C/C++
Game::Game( RenderWindow & window, Event & event )
    : win( window )
     , ev( event )
{
   
}
P-114080
« 1 »
  Strona 1 z 1