포인터에 대한 참조를 전달하는 개인 재귀 도우미 함수에 문제가 있습니다. 내가포인터에 대한 참조 전달
을 말한다 오류를 얻고있다 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'가 무엇인지 또는 어떤 결과가 반환되는지 알 수 없습니다. 하지만 임시로 참조를 바인딩하려는 것 같습니다. 허용되지 않습니다. –