Я хочу написать указатель в С++ (или в С++ 0x), который укажет на оператор класса, скажем A или B. Есть ли способ сделать это?
Конечно, есть синтаксис вроде
int (A::*_p) ();
но это не решает эту проблему. Я хочу сделать общий указатель, не указывая для него базовый класс - только указатель на "операторную функцию"
#include <thread>
#include <iostream>
using namespace std;
class A
{
public:
int operator()()
{
return 10;
}
};
class B
{
public:
int operator()()
{
return 11;
}
};
int main()
{
A a;
int (*_p) ();
_p = a.operator();
cout << _p();
B b;
_p = b.operator();
cout << _p();
}