Wie ihr aus dem Titel entnehmen könnt, habe ich noch ein paar Unklarheiten, von denen ich hoffe, dass ihr sie beseitigen könnt
1. Ich habe eine Spielklasse, die in ihrem Konstruktor die verwendeten Engines initialisiert. Nun könnte es ja vorkommen, dass eine dieser Engines aus irgendeinem Grund nicht initialisiert werden kann. In diesem Fall wird im Konstruktor eine MessageBox mit einer Fehlermeldung aufgerufen und danach "return 1;".
Das Erstellen der Instanz habe ich so gemacht:
|
C-/C++-Quelltext
|
1
2
3
4
|
if(CMyGame Game)
{
return 1;
}
|
Natürlich ist das nur ein Beispiel und nicht der ganze Code xD
So wie ich mir das dachte, wird in der if-Bedingung die Instanz erstellt und falls ein Fehler auftritt liefert der Konstruktor 1 zurück, was die Bedingung erfüllt und das Programm beendet. Nun bin ich mir überhaupt nicht sicher, ob das so zulässig ist xD Hoffe ihr könnt mich aufklären und evtl. eine andere Lösung vorschlagen...
2. Das mag jetzt vielleicht das falsche Unterforum sein, um das zu fragen, weil es ne Frage zum Buch "3D Spieleprogrammierung" ist...
In den Listings 9.50, 9.51 und 9.52 werden die Konstruktoren der abstrakten Klasse über den ":" Operator mit anderen Konstruktoren verbunden... z.B.:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
class CGame
{
//...
public:
CGame() : m_pGameState(NULL) {}
//...
};
|
Nun meine Frage: Was hat es damit auf sich? Das hab ich bis jetzt noch nicht gesehen und eine Google-Suche nach dem :-Operator hat mir auch nichts gebracht...
Herzlichen Dank im Voraus
PS: Ich denke mir einfach mal, dass das hier unter C++ Allgemein fällt? Ansonsten entschuldige ich mich...