我的问题不是关于从基类构造函数调用虚成员函数,而是指向虚成员函数的指针在基类构造函数中是否有效。
鉴于以下
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;
}
这会为所有兼容的 c++ 编译器生成“In B::vmember()”吗?