0

これは単に爆縮の瀬戸際に私を苛立たせているだけです。なぜこれがわからないのかわかりませんが、助けが必要です。または、私を正しい方向に導くための少なくともいくつかの修辞的な質問。

式というオブジェクトがあります。このオブジェクトはtokenTypeトークンの構造体です。

//expression.h file
struct expression
{

    int numTokens ;
    tokenType tokens[MAX_TOKENS_IN_EXPRESSION] ;

    void print() const ;
    ...
}

tokenTypeは、単に数値(オペランド)または記号(演算子)のいずれかです。

それを考えると、test.cppファイルに次のコード行があります。

expression expr1 , expr2 ;
...
errorCode = expr1.toPostfix( expr2 ) ;

toPostFix([parameter]);を実装する必要があります。その関数宣言は次のとおりです。

//in expression.cpp
int expression::toPostfix( expression & pfx ) const
{
    int result = 1; 

    //how do I read in the 'expression' that is calling this method???

    return result;
}

result = 0の場合、式はPostFix表記に正常に変換され、それ以外の場合は失敗します。

私が抱えている問題は、提供されたコードの途中にあるコメントです...関数に渡されるデータを取得するにはどうすればよいですか?

私はコードを求めていません。なぜなら、これは非常に単純な質問であり、私の側では頭がおならだと感じているからです。ですから、誰かが私を正しい方向に蹴ってくれたら幸いです。ありがとう

4

1 に答える 1

2

電話するとき

expr1.toPostfix(expr2);

次に、へのポインタがメソッド内のexpr1(非表示の)ポインタとして渡されます。this

この結果(しゃれは意図されていません)は、expression::toPostfix()を使用して、または使用せずに、呼び出されたオブジェクトのメンバー関数と変数にアクセスできるようになりますthis->。通常、C ++プログラマーはthis->、メンバーにアクセスするときに省略します。

もちろん、メソッド内expr2を使用してのメソッドにアクセスできますpfx

私が言わなければならないのは、これはかなり基本的なC++のものです。物事の把握を固めるために、C++チュートリアルに従うことを検討するかもしれません。

于 2012-04-11T01:32:07.997 に答える