Hallo,
durch
|
C-/C++-Quelltext
|
1
2
3
|
CGame::CGame () : m_Window (sf::VideoMode (800, 600), "SFML Application") , m_Player ()
{
}
|
wird ja der Konstruktor der Klasse CGame definiert. Nach dem Doppelpunkt (":") können Konstuktoren der Objekte innerhalb der Klasse aufgerufen werden.
Wenn du ein Objekt der Klasse CGame erstellst werden ja auch direkt die Objekte innerhalb der Klasse erstellt (hier m_Window und m_Player). Beim erstellen dieser Objekte werden wiederum deren Konstruktoren aufgerufen (falls keiner vorhanden ist wird der Standardkonstruktor aufgerufen). Durch die Notation wie in deinem Beispiel kann nun direkt angegeben werden, welcher Konstruktor beim erstellen der Objekte aufgerufen werden soll (die Klasse sf::RenderWindow hat z.B. unterschiedliche Konstruktoren, durch aufrufen des hier angegebenen Konstruktor wird sofort ein neues Fenster erstellt). Den Aufruf m_Player () hätte man auch weglassen können, dieser Konstruktor würde auch ohne die direkte Anweisung aufgerufen.
m_Window = new sf::RenderWindow (sf::VideoMode ...
Das ist hier nicht nötig, soweit ich weiß kann ein neues Fenster mit sf::RenderWindow::create(...) erzeugt werden. Dies ist hier sogar Falsch, da m_Window kein Zeiger ist.
Du kannst dich eventuell nochmal über Zeiger/Referenzen und Konstruktoren informieren.
edit: Zu spät