Ich bin ziemlich neu in C++, und ich versuche, einen einfachen Trie zu implementieren, um ein Lexikon von Zeichenfolgen zu speichern, mit der Std :: Map oder anderen C++ Standardbibliothek Container-Klassen. Was ich möchte in der Lage sein zu tun, etwas verwenden wieSelbstreferenzieller Typdef ohne Objekt oder Struktur
typedef (map<char, type_node>)* type_node;
für die Klirren ++ gibt mir den Fehler ‚Verwendung von nicht deklarierter Bezeichner‚type_node‘‘.
Dies im Gegensatz zu einer selbstbezogenen Struktur, wie
typedef struct node {
int data;
struct node *next;
} Node;
die gut arbeitet, irgendwie.
Ist es möglich, selbstreferentielle Typen zu deklarieren, ohne eine Klasse oder Struktur zu verwenden?
Warum funktioniert die Struktur und nicht der rekursive Alias-Typ?
Gibt es einen besseren Weg, dies zu tun?
Nope. Ein Typdef ist ein Alias. Aliase können nicht nach vorne deklariert werden. –
Beiseite: "Objektorientierung" ist kein Synonym für "verwendete eine Klasse/Struktur". – Hurkyl
Nein, das Typsystem muss grundsätzlich fundiert sein. –