Мой вопрос заключается не в вызове виртуальной функции-члена из конструктора базового класса, а в том, является ли указатель на действительную функцию-член в конструкторе базового класса.
Учитывая следующее
class A
{
void (A::*m_pMember)();
public:
A() :
m_pMember(&A::vmember)
{
}
virtual void vmember()
{
printf("In A::vmember()\n");
}
void test()
{
(this->*m_pMember)();
}
};
class B : public A
{
public:
virtual void vmember()
{
printf("In B::vmember()\n");
}
};
int main()
{
B b;
b.test();
return 0;
}
Будет ли это производить "In B:: vmember()" для всех совместимых компиляторов С++?