C++, как вызвать функцию внешнего класса из функтора?

У меня есть функтор, определенный в классе. Я хочу получить доступ к функции-члену внешнего класса непосредственно из функтора. Как я могу это сделать? Я хочу передать этот функтор классу шаблона в другом месте кода. Я не хочу использовать указатели на функции.

Должен ли функтор сохранять ссылку на внутренний класс как член, назначенный ему во время инициализации, чтобы иметь возможность вызывать функцию этого класса?

  Class MyClass //outer class
    {
    void DoSomething() //member function I want to access from functor
    {
    }

    class MyFunctor //the functor who wants to access outerclass's function
    {
    void operator() ()
    {
    DoSomething() //This is a member function of outer class
    }
    }   

    };

}

скажем, если я хочу сохранить локальную ссылку на внешний класс внутри функтора, то как мне создать экземпляр (не указатель) для функтора и передать указатель на внешний класс в конструкторе функтора?

0 ответов

Другие вопросы по тегам