От: | PavelCH | ||
Дата: | 24.11.17 08:19 | ||
Оценка: |
struct ca
{
int a, b;
ca() : a(0), b(0)
{
}
void func()
{
a++;
}
typedef void(ca::*proc)();
};
struct cb : ca
{
int c;
cb() : c(0)
{
}
void f2()
{
b++; c++;
}
};
static struct routine
{
const char* name;
ca::proc proc;
} pdata[] = {
{"f2", (ca::proc)&cb::f2}, // Тут опасный код
{"func", &ca::func},
};
cb t1;
ca* p = &t1;
(p->*pdata[0].proc)(); // Есть ли какие-то подводные камни в таком вызове?