0
Possible Duplicate:
Accessing inherited variable from templated parent classは、このクラスがあります
継承された保護されたジェネリッククラスのメンバーを呼び出すことはできません:
template<typename T> class Parser
{
public:
Parser() : count(0) {}
virtual void parse(const string&);
protected:
virtual void get_token(void);
char token;
string expression;
int count;
};
と、私はこの派生クラスを作った:
#include <sstream>
#include <cstring>
#include "Parser.h"
template <typename T> class ArithmeticExpressionParser : public Parser<T>
{
public:
ArithmeticExpressionParser() : Parser<T>() {}
protected:
virtual T parse_plus_minus();
virtual T parse_divide_multiply()
{
T result , temp;
result = parse_exponent();
if(this.token == '/')
{
temp = parse_divide_multiply();
result /= temp;
}
else if(token == '*')
{
temp = parse_divide_multiply();
result *= temp;
}
else if(token == '%')
{
temp = parse_divide_multiply();
result %= temp;
}
return result;
}
/* more code.... */
今、私は取得していますエラーがあります:
などなどまさに私が間違っているのは何
?
+1これはなぜ必要なのですか? – ApprenticeHacker
@IntermediateHacker:重複した質問を参照してください。基本的に、コンパイラは 'token'が従属名であることを知らないので、それを伝える必要があります。 – Xeo
もう一度ありがとうございます。私は最後の近くの投票を行います。 – ApprenticeHacker