我遇到了一个私人递归帮助函数,我在指针中传递了一个引用的问题。我得到的是说将指针传递给指针
错误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