LINUX.ORG.RU

История изменений

Исправление next_time, (текущая версия) :

class MyClass
{
int b;
public:
void func(int a)
{ cout<<a + b;
}
MyClass(int _b): b(_b){}
};


typedef void (*func_mc) (MyClass& mc, int a);

int main()
{   func_mc some_func_mc = reinterpret_cast<func_mc>(&MyClass::func);
    MyClass my_class(12);
    some_func_mc(my_class, 5);
    return 0;
}

Вывод программы: 17.

Вот только зачем, когда есть более элегантные решения?

Исходная версия next_time, :

И, наконец, полноценные указатели на методы класса:

class MyClass
{
int b;
public:
void func(int a)
{ cout<<a + b;
}
MyClass(int _b): b(_b){}
};


typedef void (*func_mc) (MyClass& mc, int a);

int main()
{   func_mc some_func_mc = reinterpret_cast<func_mc(&MyClass::func);
    MyClass my_class(12);
    some_func_mc(my_class, 5);
    return 0;
}

Вывод программы: 17.

Вот только зачем, когда есть более элегантные решения?