对象指针赋值指针向量的元素

时间:2013-02-05 21:58:28

标签: c++ object pointers vector variable-assignment

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

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

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

3 个答案:

答案 0 :(得分:5)

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

tokens->operator[](0);

(*tokens)[0];

答案 1 :(得分:2)

Token* currentToken = (*tokens)[0];

确保令牌不为空。你为什么不通过参考?

答案 2 :(得分:2)

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

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

如果无法做到这一点,您可以在使用之前简单地取消引用指针:Token* currentToken = (*tokens)[0]