Я немного новичок в C ++, поэтому я не уверен, как справиться с такой проблемой. У меня есть класс с несколькими закрытыми методами. Внутри одного из методов есть функтор, из которого я хочу вызвать другой метод класса.
Вот пример кода:
# myprogram.h
namespace new_space
{
// Generic functor
template<typename _Scalar, int NX = Eigen::Dynamic, int NY = Eigen::Dynamic>
struct Functor
{
typedef _Scalar Scalar;
enum {
InputsAtCompileTime = NX,
ValuesAtCompileTime = NY
};
...
};
class myNewClass
{
private:
void f1();
void f2();
};
}
# myprogram.cpp
namespace new_space
{
void myNewClass::f1()
{
...
}
void myNewClass::f2()
{
struct my_functor : Functor<double>
{
my_functor(void): Functor<double>(3,3) {}
int operator()(const Eigen::VectorXd &x, Eigen::VectorXd &fvec) const
{
f1();
...
}
};
...
}
}
Когда я хочу создать этот файл, я получаю сообщение об ошибке:
не может вызвать функцию-член void new_space :: myNewClass :: f2 () ’
без объекта
Есть ли способ решить эту проблему?