Ungültige Verwendung von unvollständigem Typ in g ++

8

Ich habe zwei Klassen, die voneinander abhängen:

%Vor%

Wenn ich es in g ++ kompiliere, gab es einen Fehler von "Ungültige Verwendung von unvollständigem Typ", aber es wurde schön in MSVC 10 kompiliert. Ist es möglich, dieses Problem zu lösen, während die Deklaration und Definition in einer Header-Datei bleiben? (keine CPP-Dateien) Wenn dies im Standard nicht erlaubt ist, gilt dies auch für den "Bug" oder "Feature" von MSVC?

    
leiiv 17.02.2010, 01:09
quelle

3 Antworten

8

Ja, verschiebe einfach die Methodendefinitionen aus der Klassendefinition heraus:

%Vor%     
R Samuel Klatchko 17.02.2010, 01:16
quelle
0

Siehe diese Seite: Was ist der beste Weg zu beschäftigen Sie sich mit co-abhängigen Klassen in C ++?

Es sollte das Problem klären und bietet ein paar nette Lösungen.

    
Nathan Osman 17.02.2010 01:13
quelle
0

Dies funktioniert, wenn Sie Foo* foo_ptr; durch den Vorlagenparameter T ersetzen, sodass Sie T* foo_ptr; erhalten. In diesem% muss co_de% nicht notwendigerweise ein Zeiger sein oder vordefiniert sein.

%Vor%     
Keinstein 06.09.2017 09:34
quelle

Tags und Links