그래서 저는 bst의 각 노드에있는 각 항목에서 함수 f를 실행하기위한 함수 인 선주문 처리 기능을 가지고 있습니다. 함수는 다음과 같습니다 :템플릿 함수를 다른 템플릿 함수로 전달
template <class Item, class Key, class Process>
void preorder_processing(bstNode<Item, Key>*& root, Process f)
{
if (root == NULL) return;
f(root);
preorder_processing(root->left(), f);
preorder_processing(root->right(), f);
}
불행히도, 내가 main 함수 내에서 클래스를 호출하면 오류가 발생합니다. 이 호출은 preorder_processing (root_ptr, print)입니다. 실제 기능 '인쇄'입니다 :
template<class Item>
void print(Item a)
{
cout << a << endl;
}
오류 :
bstNode.cxx:23: error: no matching function for call to ‘
preorder_processing(bstNode<int, long unsigned int>* <unresolved overloaded function type>)
’
이 사람이 무슨 일이 일어나고 있는지 알고 있나요?
당신은 줄 필요를 'inorder_processing()'의 선언도 기능합니다. print() 함수는 무엇을하고 있는가? – iammilind
아, 두 가지 유사한 오류 메시지가 있는데, 비슷한 기능에 대해 잘못 게시했습니다. 내 잘못이야. preorder_processing()은 오류 메시지의 inorder가 아닙니다. – vanchagreen