Ist es möglich, eine Klasse zu deklarieren, ohne sie zu implementieren? (C ++)

8

Ich weiß, dass die Fragen mehrdeutig erscheinen, aber ich kann mir keinen anderen Weg vorstellen, es zu sagen, aber, ist es möglich, so etwas zu tun:

%Vor%

?

    
aiao 16.05.2009, 01:50
quelle

6 Antworten

19

Ja, das ist möglich. Folgendes erklärt nur wsx

%Vor%

Diese Art von Deklaration wird Forward-Deklaration genannt, weil sie benötigt wird, wenn zwei Klassen aufeinander verweisen:

%Vor%

Einer von ihnen muss dann vorwärts erklärt werden.

    
Johannes Schaub - litb 16.05.2009, 01:55
quelle
4

Dies ist die Definition der Klasse

%Vor%

Dies ist die Definition des Konstruktors

%Vor%

Dies ist eine Vorwärtsdeklaration, die besagt, dass die Klasse irgendwo definiert wird

%Vor%     
Shane C. Mason 16.05.2009 01:56
quelle
3

In Ihrem Beispiel

%Vor%

Also ja, mit class wsx; ist es möglich, eine Klasse zu deklarieren, ohne sie zu definieren. Mit einer Klassendeklaration können Sie Zeiger und Verweise auf diese Klasse deklarieren, aber keine Instanzen der Klasse. Der Compiler benötigt die Klassendefinition, damit er weiß, wie viel Speicher für eine Instanz der Klasse reserviert werden muss.

    
Greg Hewgill 16.05.2009 01:55
quelle
2

Ja. Aber es ist nicht möglich, eine Klasse zu definieren, ohne sie zu deklarieren.

Weil: Jede Definition ist auch eine Deklaration.

    
wmeyer 16.05.2009 02:32
quelle
0

Ich bin mir nicht sicher, was du meinst. Der Code, den Sie eingefügt haben, sieht korrekt aus.

    
bdonlan 16.05.2009 01:52
quelle
0

Sie haben die Klasse definiert. Es hat keine Datenelemente, aber das ist nicht notwendig.

    
SPWorley 16.05.2009 01:53
quelle