C++ Klassendefinition class eineklasse;

honky-tonk

Commodore
Registriert
Feb. 2009
Beiträge
4.206
hi,
ich bin bei dem versuch c++ code zu verstehen auf folgendes konstrukt gestoßen, von dem ich keie Ahnung habe was es bedeuten soll:

Code:
#include <iostream>
#include <vector>

class Class1;
class Class2;

class Switch
{
  public:
    Switch();
...

aus der zeile class class1; kann ich mir nichts nehmen...was soll das sein? auf der suche nach Interfaces oder Abstrakten Klassen in C++ habe ich nichts hierzu passendes gefunden! Die standart Klassendefinition mit class Switch{alle methoden} ist mir geläufig.

Kann mir jemand bitte einen tipp geben um was es sich hierbei handelt?

Vielen Dank!!!
 
Das nennt sich Forward-Deklaration und damit sagst du zunächst erstmal es gibt eine Klasse Class1 aber noch nicht was genau sie macht. Das braucht man mitunter wenn zwei Klassen sich gegenseitig Referenzieren weil es da mitunter Probleme beim kompilieren gibt.

Du kannst dir in dem Beispiel also sparen den Header einzubinden der definiert was Class1 macht, das musst du dann in der Regel erst in der .cpp machen solange du in der .h nicht auf Details von Class1 zugreifen musst.

Das gleiche funktioniert auch mit Funktionen.
 
Zuletzt bearbeitet:
Die beiden Klassen "Class1" und "Class2" sind sog. Vorwärtsdeklarationen. Die werden benutzt um eine Klasse als Parameter oder Rückgabewert zu verwenden, die in einer anderen Datei definiert werden. Wenn die Deklarationen nicht vorhanden sind, wird der Compiler meckern.
 
ahhhh ja da war doch was....schonmal von gehört... danke an: Mortal und phm666
 

Ähnliche Themen

Zurück
Oben