C++에서 이진 트리 (링크 된 노드 표현 사용)를 작성하고 있습니다. 나는 트리의 노드 수를 계산하는 멤버 함수를 작성하려면, 그래서 나는이 일을 할 수있는 재귀 함수를 작성 :재귀 함수의 반환 값을 const로 설정할 수 있습니까?
template<class Item> size_t binary_tree<Item>::count_node(
binary_tree_node<Item>* const node)
{
if(node == NULL) return 0;
else return 1 + count_node(node->get_left())
+ count_node(node->get_right());
}
내가 binary_tree 클래스의 사설에서이 기능을 설정합니다. 내가 공용 함수의 크기가()를 호출합니다 :
는template<class Item> size_t binary_tree<Item>::size()
{
return count_node(root);
}
지금 여기 내 질문에 온다 : 나는 코드까지 같은 크기()를 작성하는 경우, 그것은 잘 작동합니다. 하지만 다음과 같이 반환 값을 const로 설정하면
template<class Item> size_t binary_tree<Item>::size() const
{
return count_node(root);
}
이 코드를 컴파일 할 수 없습니다. 컴파일러는 size_t를 const size_t로 전송할 수 없다고 불평합니다. 이 문제를 해결하는 방법? 감사. const
방법의 내부이라고
감사합니다. 이것은 나를 위해 일합니다. @ Xymostech – Tian
@Tian Glad 도움이되었습니다. 또한 나중에 참조 할 수 있도록 게시물을 작성한 경우 다른 사람에게 @ 작성하지 않아도됩니다. 항상 공지됩니다. – Xymostech