Я пишу программу, которая реализует суффикс trie в C++. Я пытаюсь объявить рекурсивную функцию без параметров, но которая должна передать указатель на себя.C++ Default Аргумент с указателями
я определяю его, таким образом,
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;
}
в файле .cpp, где узел является предварительно объявленной структуры данных.
Однако при простом вызове trie.longestRepeat()
в основной функции возникает ошибка «нет соответствующего вызова функции для Trie::longestRepeat()
. Кандидат ожидает 1 аргумент, 0 предоставлено».
Спасибо за это. Но теперь я получаю сообщение об ошибке, утверждающее, что 'longestRepeat()' амбициозно; по какой-то причине он не может выбирать между двумя в основной функции. –
@ LukeCollins Вы пытаетесь сделать первый или второй фрагмент? – Holt
Я забыл подчеркнуть! –