我正在将这样的代码从 MS VS6 迁移到 VS2010:
class A
{
protected:
typedef void (A::*X_t)(int x);
virtual void CallX(X_t x) {}
virtual void X() {}
virtual void X(int x) {}
};
class B: public A
{
protected:
virtual void X()
{
this->CallX(&A::X);
}
};
这在 MS VS6 中编译,但在 VS2010 中失败
error C2248: 'A::X' : cannot access protected member declared in class 'A'
有没有办法摆脱这个错误?