Behebung von GCC-Fehler: invalid use of incomplete type 'class ...'

English Deutsch

Problem:

Du kompilierst ein C/C++-Programm mit GCC. Du erhältst eine Fehlermeldung ähnlich dieser:

gcc_incomplete_type.txt
error: invalid use of incomplete type ‘class SomeType’

Lösung

Es gibt mehrere mögliche Probleme, aber im Allgemeinen bedeutet dieser Fehler, dass GCC die vollständige Deklaration der angegebenen Klasse oder Struktur nicht finden kann.

Das häufigste Problem ist, dass dir eine #include-Anweisung fehlt. Finde heraus, in welcher Header-Datei sich die Deklaration befindet, d.h. wenn die Fehlermeldung class Map erwähnt, suche nach etwas wie

class_declaration_example.cpp
class Map {
   // ...
};

Normalerweise befinden sich Klassen in Header-Dateien, die ähnlich wie ihr Name lauten, z.B. könnte MyClass in einer Header-Datei namens MyClass.h, MyClass.hpp oder MyClass.hxx stehen, also suche zuerst nach diesen Dateien. Beachte, dass du auch nach einem Typ aus einer Bibliothek suchen könntest. Oft ist der beste Ansatz, C++ <den fehlenden Typ hier einfügen> zu googeln, um herauszufinden, wo er sich befinden könnte.

Ein weiterer möglicher Grund ist, dass deine #include-Anweisung nach der Zeile steht, in der der Fehler auftritt. Wenn dies der Fall ist, stelle sicher, dass alle erforderlichen Typen eingebunden werden, bevor sie verwendet werden.

Für andere Gründe siehe StackOverflow, z.B. diesen Beitrag


Check out similar posts by category: C/C++, GCC Errors