可能重复:
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.... */
现在我得到的错误是:
等。等
我究竟做错了什么?
答案 0 :(得分:3)
您需要this->token
。