[英]An element of a pointer vector of object pointers assignment
我在將對象指針的指針向量的元素分配給對象指針時遇到麻煩。 我在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];
確保令牌不為空。 您為什么不通過參考呢?
tokens
是指向vector的指針 ,而不是對象或引用。 C ++的方式是將函數原型更改為:
void Parse::parseDatalogProgram(const vector<Token*>& tokens){...}
如果無法做到這一點,則可以在使用指針之前先對其取消引用: Token* currentToken = (*tokens)[0]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.