我正在编写一个在C++中实现后缀trie的程序。我试图声明一个没有参数的递归函数,但是需要将一个指针传递给它自己。带指针的C++默认参数
我在cpp文件,其中节点是先前声明的数据结构从而限定它
public:
string longestRepeat(Node*);
在头文件
,和
string Trie::longestRepeat(Node* start = &nodes[0]){
string deepest = "";
for(unsigned int i = 0; i < start->getEdges(); i++){
string child_deepest = longestRepeat(start->getChild(i));
if(child_deepest.length() > deepest.length())
deepest = child_deepest;
}
return deepest;
}
。
但是在主函数中简单地调用trie.longestRepeat()
会导致错误“Trie::longestRepeat()
没有匹配的函数调用。候选者期望1个参数,0提供”。
感谢您的支持。但是现在我收到一条错误消息,声称'longestRepeat()'是雄心勃勃的;由于某些原因,它不能在主函数中选择两者之一。 –
@LukeCollins你在尝试第一个还是第二个片段? – Holt
我忘了下划线! –