1

我在将对象指针的指针向量的元素分配给对象指针时遇到问题。我在 Linux 上并使用 Eclipse IDE。如果你想看看我的问题:

void Parse::parseDatalogProgram(vector<Token*>* tokens)
{
    Token* currentToken = tokens[0];
...
}

我收到一个语法错误,说“无法在初始化中将 'std::vector' 转换为 'Token*'”,尽管上面看起来不是这样 我该如何正确解决这个问题?

4

3 回答 3

5

tokens是一个指针,而不是一个vector本身。你可以做

tokens->operator[](0);

或者

(*tokens)[0];
于 2013-02-05T22:00:32.840 回答
2
Token* currentToken = (*tokens)[0];

确保令牌不为空。你为什么不传递参考呢?

于 2013-02-05T22:02:45.410 回答
2

tokens指向 vector的指针,而不是对象或引用。C ++方式将函数原型更改为:

void Parse::parseDatalogProgram(const vector<Token*>& tokens){...}

如果这不可能,您可以在使用它之前简单地取消引用指针:Token* currentToken = (*tokens)[0]

于 2013-02-05T22:03:20.603 回答