を入力:たとえば私はこのような同じ要素型を指す要素、何かを定義するC++
#define Foo { Foo*, ..., ... }
、これは私が簡単なを作成するのに役立ちます任意のAUXILIARクラスを作成せずに木が:その宣言の中で自分自身への参照を行う場合Foo
がまだ宣言されていないので、
#define TreeNode std::deque(std::pair(char, TreeNode*))
TreeNode mRootNode;
しかし、これは、実行することはできません。
私の質問は...なぜクラスで実装するときに同じ機能が許可されるのですか?私のFoo
を定義するために、オブジェクト指向ではなく、もっと簡単な方法がありますか?
これはしたくないですが、または他のほとんどすべて。 C++でプリプロセッサマクロを使用します。 –
ステップ1、マクロは使用しないでください。 – RyanP
#defineは型ではなくマクロを作成します。表示されているようにマクロを展開しようとすると、無限の自己再帰が得られます。 – zstewart