Вызов виртуальной функции по адресу
От: Аноним  
Дата: 18.09.13 09:21
Оценка:
Вызовется ли виртуальная функция дочернего класса по указателю на функцию родительского?
Псевдокод:


class A 
{
 public:
     virtual void foo()
     {
     }
};

class B : public A
{
 public:
     virtual void foo()
     {
     }
};

A a;
void * pFunction = &а::foo;


// приводим функцию к нужному типу и вызываем (как это записать правильно? )
*(( А::foo* )pFunction )();  

// Вызовется ли здесь B::foo() ? Если нет, то как вызвать B::foo(), имея адрес A::foo() ?



Или это вообще ужос-ужос-ужос и красиво все надо писать не так?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.