これは可能な限り最良の方法です。私は現在、上記のリンクは続き、コードの一部は、デバッグで実行されて示しています...親クラスから子クラスにアクセスする方法
をリテラルのInt /実/文字列などの可能性がリテラルを受け入れパーサを、コーディングしています現在の変数が使用されます。あなたが見ることができるように、 '文字通り'は何も保持していません。 Int Literalクラスの値を表示すべきではありませんか?私はLiteralとInt Literalクラスファイルも添付しました。
これは可能な限り最良の方法です。私は現在、上記のリンクは続き、コードの一部は、デバッグで実行されて示しています...親クラスから子クラスにアクセスする方法
をリテラルのInt /実/文字列などの可能性がリテラルを受け入れパーサを、コーディングしています現在の変数が使用されます。あなたが見ることができるように、 '文字通り'は何も保持していません。 Int Literalクラスの値を表示すべきではありませんか?私はLiteralとInt Literalクラスファイルも添付しました。
new ASTNodeInt(currToken)
は、ASTNodeInt
ではなく、実際のヒープ上のASTNodeInt
へのポインタを提供します。 literal->intlit
を実行してポインタを参照することで、値を取得できます。デバッガは正しく見えます。literal
はASTNodeLiteral *
(ポインタ)で、その値はメモリアドレスです。
を作成して別の新しいコードを作成し、作成した元のコードにdelete
を呼び出すことなくコードをリークさせることもできます。
http://imgur.com/a/ZIc3b 値を取得するのに 'literal-> intlit'を使用できません。これは、ポインタがASTLiteralを指しているためです。とにかく 'intlit'という値を取得するために自動的にASTNodeIntを指すようにしていますか? –
おそらく '(static_cast
ありがとう、これはうまくいった!子インスタンスに自動的にキャストする方法がありますか?これは、リテラルを複数の子クラスの1つにすることができるため、リテラルをどのようにキャストするべきかを簡単に指示できないためです。 –
「Java」タグとは何ですか? –
_ "Int Literalクラスの値を表示すべきではありませんか?"それは範囲にない。それに対するポインタだけです。 –