【问题标题】:An element of a pointer vector of object pointers assignment对象指针赋值的指针向量的一个元素
【发布时间】:2013-01-20 23:36:34
【问题描述】:
我在将对象指针的指针向量的元素分配给对象指针时遇到问题。我在 Linux 上并使用 Eclipse IDE。如果你想看看我的问题:
void Parse::parseDatalogProgram(vector<Token*>* tokens)
{
Token* currentToken = tokens[0];
...
}
我收到一个语法错误,提示“无法在初始化中将‘std::vector’转换为‘Token*’”,尽管上面看起来不是这样我该如何正确解决这个问题?
【问题讨论】:
标签:
c++
object
pointers
vector
variable-assignment
【解决方案1】:
tokens 是指向向量的指针,而不是对象或引用。 C++ 方式将函数原型更改为:
void Parse::parseDatalogProgram(const vector<Token*>& tokens){...}
如果这不可能,您可以在使用它之前简单地取消引用指针:Token* currentToken = (*tokens)[0]
【解决方案2】:
Token* currentToken = (*tokens)[0];
确保令牌不为空。你为什么不传递参考呢?
【解决方案3】:
tokens 是一个指针,而不是 vector 本身。你可以这样做
tokens->operator[](0);
或
(*tokens)[0];