Закрытый указатель функции члена - PullRequest
0 голосов
/ 15 октября 2018

Я работаю над заданием, включающим различные типы деревьев, для типов деревьев мой профессор предоставил нам следующий код:

class TreeClass
{
private:
    typedef void (*FuncType)(const E& item); 
    class Node
    {
        friend class Tree<E>;
    };
    void traverse (Node* node, FuncType func);
public:
    void traverse(FuncType func); 
};

Мы должны передать func в качестве аргумента лямбда-функции длявызов метода в main.Я попытался реализовать его, определив его в вызове метода, т. Е.

myTree.traverse([] (string nodeData) -> void {cout << nodeData << endl;});

Я также попытался установить определение лямбда-функции для переменной, т. Е.

int main(int argc, char** argv)
{
    auto func = [] (string nodeData) -> void
    {
        cout << nodeData << endl;
    };
    Tree<string> myTree;
    myTree.traverse(func);
}

Ошибка, которую я получаюэто no matching function call to 'traverse'

Я действительно не уверен, что я делаю неправильно синтаксически или логически, так как я пробовал много разных способов и типов данных.Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...