簡體   English   中英

對象指針分配的指針向量的元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM