Wo kann ich den Body für eine private Funktion definieren?

8

Ich habe einen Header wie diesen (Header-Wächter nicht gezeigt):

%Vor%

Wo kann ich den Körper für InitGame() , RunGame() und ExitGame() definieren? Kann ich es in meiner .cpp -Datei definieren? Wenn das so ist, wie? Oder bin ich verpflichtet, ihren Körper in meiner .h Datei zu machen?

Ich benutze Eclipse und ich begann zu tippen: void GameSystem:: und schlägt dann nicht die privaten Funktionen vor.

    
Martijn Courteaux 18.06.2010, 13:05
quelle

4 Antworten

10

Ja, Sie können das dann in einer CPP-Datei definieren. Setzen Sie einfach #include "MyHeader.h" am Anfang der Datei. Sie müssen auch jede Funktion wie folgt starten

%Vor%     
wheaties 18.06.2010, 13:06
quelle
13

Im Allgemeinen würden Sie sowohl private als auch private Funktionen in der .cpp -Datei definieren.

Ein Grund, Funktionen in der .h -Datei zu definieren, ist, wenn sie inlineable sein sollen.

    
Artelius 18.06.2010 13:07
quelle
2

Ich denke, Sie sind besorgt über private Funktionen sollten privat mit der Bedeutung "nicht sichtbar in der Kopfzeile (das ist die Schnittstelle)" sein. Aber private bedeutet "von außerhalb der Klasse nicht zugänglich", d. H. Nur Funktionen der Klasse können private functions aufrufen. Wenn Sie nicht möchten, dass (menschliche) Benutzer Ihrer Klasse diese Implementierungsdetails sehen, müssen Sie geeignete Entwurfsmuster (z. B. Fassadenmuster) verwenden.

    
ur. 18.06.2010 13:15
quelle
0

Das Definieren in .h bedeutet inline, aber die Definition in .cpp und die Verwendung der Forward-Deklaration ermöglichen eine effizientere Kompilierung.

Siehe hier: Ссылка

    
rhapsodyn 18.06.2010 13:18
quelle

Tags und Links