を使用して、<<演算子をオーバーライド:は、私は内に含まれているものをプリントアウトして、これらの2つのメソッドを記述する必要が二つの方法
exは(申し訳ありませんが、スペースを節約し、全体を掲示避けるためにしようと、アレイ構成tokenTypeのTKです構造体)
残念ながら、私が言うコンパイルエラー取得しています:[i]のように、それは、< <を上書きしますので、私はこの問題を解決するにはどうすればよい
ââoperatorための一致なし[]âAEXで:エラー2番目の方法は最初の?詳細後
ostream & operator<< (ostream & os , const tokenType & tk)
{
switch (tk.category)
{
case TKN_OPRAND:
os << tk.operand;
break;
case TKN_OPRTOR:
os << tk.symbol;
break;
}
return os;
}
ostream & operator<< (ostream & os , const expression & ex)
{
tokenType tk;
for (int i = 0; i < ex.numTokens; i++)
{
tk = ex[i];
os << tk.operand << " "; //problem line is this one
}
return os;
}
struct expression
{
int numTokens ;
tokenType tokens[MAX_TOKENS_IN_EXPRESSION] ;
void print() const ;
int toPostfix(expression & pfx) const ;
int evalPostfix(int & val) ;
expression() { numTokens = 0 ; } ; // default constructor
} ;
。 http://msdn.microsoft.com/en-us/library/1z2f6c2k(v=vs.80).aspx – prelic
私はあなたのコンパイラがゼロから線を引くので、あなたは一つずつ離れていると思います:エラーは1行目ですあなたの「問題はここにある」コメントの上に表示されます。 'expression'は' [] '演算子を定義していますか?実装を表示できますか? – dasblinkenlight
確かに、私は上でそれを編集します。 – rfmas3