Tokenという親クラスがあります
ErrorToken と EndToken の 2 つの子クラスがあります。 これらのクラスのそれぞれが、他の のオブジェクトを作成し、関数呼び出しを介してそれを返すことができる必要があります。それぞれに独自の個別のヘッダー クラスがあります。
したがって、ErrorToken は新しい EndToken オブジェクトを作成して返すことができる必要があり、EndToken は新しい ErrorToken オブジェクトを作成して返すことができる必要があります。
これを成功させる最善の方法は何でしょうか? プラグマを一度も使用したくないので、可能な限りクロスコンパイラ互換であることが望ましいです。(しかし、それは本質的に私が探しているものです)。
理想的には、このようなことができるようになりたいのですが...
#ifndef ErrorToken
#include "ErrorToken.h"
#endif
しかし、それは決してうまくいかないようです(私の推測では、それは間違っていると思いますか?誰かが理由を理解するのを手伝ってくれますか?)。
前方宣言の私の理解は、それが関数のシグネチャとポインターでのみ機能するということです(それは正しいですか?)、コンストラクターを実行できるようにするために必要なので、私の状況では機能しないと思います...または機能しますコンパイラは、コンストラクタがその時点で終了することを認識する必要があるだけですか?