Я хочу написать указатель на c ++ (или на c ++ 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();
}