C++ Я хочу, чтобы определить элемент, который указывает на тот же тип элемента, что-то вроде этого:Определить элемент, указывающий на тот же элемент типа в
#define Foo { Foo*, ..., ... }
Например, это помогает мне создать простой дерево без создания каких-либо ДОПОЛНИТЕЛЬНОЕ класс:
#define TreeNode std::deque(std::pair(char, TreeNode*))
TreeNode mRootNode;
Однако, это не может быть сделано, потому что Foo
все еще не объявлена, делая ссылку на себя в своем заявлении.
Мой вопрос: почему такая же возможность допускается при ее реализации с помощью классов? Есть ли еще один простой способ, а не Object Oriented, определить мой Foo
?
Вы не хотите этого делать, или почти все остальное. используя макросы препроцессора в C++. –
шаг один, не использовать макросы. – RyanP
#define создает макрос, а не тип. Если вы попытаетесь расширить этот макрос, как показано, вы получите бесконечную саморекурсию. – zstewart