Re: Вызов функции класса по ссылке
От: Анатолий Широков СССР  
Дата: 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)();
Отредактировано 24.11.2017 8:55 Анатолий Широков . Предыдущая версия . Еще …
Отредактировано 24.11.2017 8:52 Анатолий Широков . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.