我對C++相當陌生,並且試圖使用std :: map或其他C++標準庫容器類來實現一個簡單的trie來存儲字符串的詞典。我希望能夠做的就是使用類似沒有對象或結構的自引用typedef
typedef (map<char, type_node>)* type_node;
爲此鐺++給我的錯誤「使用未聲明的標識符‘type_node’的」。
這相對於一個自我指涉的結構,如
typedef struct node {
int data;
struct node *next;
} Node;
工作正常,不知何故。
是否可以在不使用類或結構的情況下聲明自引用類型?
爲什麼結構工作而不是遞歸別名類型?
有沒有更好的方法來做到這一點?
都能跟得上。 typedef是別名。別名不能提前宣佈。 –
另外:「對象方向」不是「使用類/結構」的同義詞。 – Hurkyl
不,基本上,類型系統需要有根據。 –