Dann mach es doch, wie ich es dir gesagt hab.
Mach aus
|
C-/C++-Quelltext
|
1
|
sf::RenderWindow m_App;
|
ein
|
C-/C++-Quelltext
|
1
|
sf::RenderWindow *m_App;
|
und beim Konstruktor machst du das dann so:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
CGame::CGame() : m_App(new sf::RenderWindow(sf::VideoMode(1366, 768), "Moorhuhn")) ,
m_Clock(sf::Clock()) ,
m_ReticleImage(sf::Image()),
m_AimImage(sf::Image())
{
InitGame();
}
|
das was du in der initialisierungsliste verwendest sind konstruktoren. der umweg über ein temporäres objekt ist also unnötig.
so gehts richtig:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
CGame::CGame() : m_App(sf::VideoMode(1366, 768), "Moorhuhn") ,
m_Clock() ,
m_ReticleImage(),
m_AimImage()
{
InitGame();
}
|
so muss(und darf) m_App auch kein zeiger sein.
edit:
hab grad gemerkt dass du es ganz oft machst. hast du vielleicht vorher in Java programmiert?
standardmäßig wird immer der standardkonstruktur in der initialisierungsliste aufgerufen(explizit wie m_Clock() oben, oder implizit wie z.b. m_ReticleImage.
diese zeile in InitGame ist also überflüssig
m_ReticleImage = sf::Image();
mein tipp: leg dir nen nachschlagewerk wie
der C++ programmierer zu