我無法將對象指針的指針向量的元素賦值給對象指針。我在Linux上並使用Eclipse IDE。如果你想看看我的問題:對象指針賦值指針向量的元素
void Parse::parseDatalogProgram(vector<Token*>* tokens)
{
Token* currentToken = tokens[0];
...
}
我得到一個語法錯誤說:「不能將‘的std ::矢量’到‘令牌*’在初始化」,雖然上面似乎並不以這種方式看我如何正確地解決這個問題?
我無法將對象指針的指針向量的元素賦值給對象指針。我在Linux上並使用Eclipse IDE。如果你想看看我的問題:對象指針賦值指針向量的元素
void Parse::parseDatalogProgram(vector<Token*>* tokens)
{
Token* currentToken = tokens[0];
...
}
我得到一個語法錯誤說:「不能將‘的std ::矢量’到‘令牌*’在初始化」,雖然上面似乎並不以這種方式看我如何正確地解決這個問題?
tokens
是一個指針,而不是一個vector
本身。你可以做
tokens->operator[](0);
或
(*tokens)[0];
Token* currentToken = (*tokens)[0];
確保令牌不爲空。爲什麼你不通過參考,而是?
tokens
是指向矢量的指針,而不是對象或引用。 C++的方式將被改變的函數原型:
void Parse::parseDatalogProgram(const vector<Token*>& tokens){...}
如果這是不可能的,你可以簡單地解引用使用它之前的指針:Token* currentToken = (*tokens)[0]