对象指针赋值的指针向量中的一个元素

An element of a pointer vector of object pointers assignment

本文关键字:指针 一个 元素 赋值 向量 对象      更新时间:2023-10-16

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

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

我收到一个语法错误,说"初始化时无法将‘std::vector’转换为‘Token*’",尽管上面看起来并不是这样的。我该如何正确修复这个问题?

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

tokens->operator[](0);

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

请确保令牌不为null。你为什么不传递一个引用呢?

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

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

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