我正在編寫一個在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
我忘了下劃線! –