От: | Анатолий Широков | ||
Дата: | 24.11.17 08:51 | ||
Оценка: |
#include <iostream>
using namespace std;
struct ca
{
int a, b;
ca() : a(0), b(0)
{
}
virtual void f2() = 0;
void func()
{
a++;
}
typedef void(ca::*proc)();
};
struct cb : ca
{
int c;
cb() : c(0)
{
}
void f2() override
{
b++; c++;
}
};
static struct routine
{
const char* name;
ca::proc proc;
} pdata[] = {
{"f2", &ca::f2},
{"func", &ca::func},
};
cb t1;
ca* p = &t1;
(p->*pdata[0].proc)();