Klassenimplementierung in mehreren Dateien

8

Ich versuche eine Klasse in verschiedenen cpp-Dateien zu implementieren. Ich verstehe, dass es in C ++ eine legitime Sache ist, wenn die Mitgliedsfunktionen unabhängig sind. Eine der Elementfunktionen verwendet jedoch eine andere Elementfunktion wie in diesem Fall:

In Funktion1.cpp

%Vor%

In function2.cpp

%Vor%

Ich bekomme einen Fehler von undefiniertem Verweis auf Funktion2. Es funktioniert nicht, indem Sie diesen Zeiger entweder hinzufügen. Muss ich es in function1.cpp irgendwie deklarieren? Danke ~

Die Header-Datei enthält die Deklaration beider Funktionen. Es funktioniert, wenn Funktion 1 und Funktion 2 in der gleichen Datei sind, aber nicht, wenn ich sie getrennt habe. Ich glaube auch, dass ich beide cpp im Projekt hinzugefügt habe. Ich benutze Qt Creater BTW.

    
Bill 04.08.2011, 10:35
quelle

3 Antworten

12

Solange myclass.h die Definition der Klasse mit den Deklarationen der Elementfunktionen enthält, sollte alles in Ordnung sein. Beispiel:

%Vor%     
Armen Tsirunyan 04.08.2011, 10:38
quelle
1

Das sollte funktionieren. Wenn Sie einen Linker-Fehler erhalten, stellen Sie sicher, dass Sie beide cpp-Dateien kompilieren, was wahrscheinlich Ihren Fehler verursacht.

    
Luchian Grigore 04.08.2011 10:40
quelle
0

Mir scheint alles in Ordnung zu sein. Möglicherweise ist mit dem Build-Prozess etwas nicht in Ordnung. Sie sollten die beiden CPP-Dateien (mit der Option -c) in Objektdateien kompilieren und in der nächsten Stufe miteinander verknüpfen.

    
n0rm1e 04.08.2011 11:18
quelle

Tags und Links