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: см. Дублированный вопрос. В принципе, компилятор не знает, что 'токен' является зависимым именем, поэтому вам нужно это сказать. – Xeo
еще раз спасибо. Я дам последнее закрытое голосование. – ApprenticeHacker