我遇到了一個私人遞歸幫助函數,我在指針中傳遞了一個引用的問題。我得到的是說將指針傳遞給指針
錯誤insertSymbol「的重載功能無實例‘’參數列表匹配參數類型是:(字符串表達式*)」
我想我誤解的東西關於通過引用。有人可以幫我嗎?
struct ExpressionTree {
private:
Expression* root;
bool insertSymbol(String& symbol, Expression*& root) {
if (root == nullptr) { // base case
root = new Expression(symbol);
return true;
}
if ((*(*root).getSymbol()).c_str()[0] == '~') {
return insertSymbol(symbol, (*root).getLeftChild()); // Error occurs here
}
}
public:
ExpressionTree(void) {
root = 0x00;
}
// returns true if insert was successful, otherwise returns false
bool insertSymbol(String& symbol) {
if (symbol.size == 0) return false;
return insertSymbol(symbol, root); // Calls recursive helper function
}
};
我們無法知道'getLeftChild'是什麼或返回什麼。但它看起來像你試圖綁定一個臨時的引用,這是不允許的。 – 2014-11-24 03:34:22