编译器错误 C2647

“operator”: 无法在“type2”上取消引用“type1”

指针到成员运算符(->*.*)的左操作数不能隐式转换为与右侧操作数相关的类型。

以下示例生成 C2647:

// C2647.cpp
class C {};
class D {};

int main() {
   D d, *pd;
   C c, *pc = 0;
   int C::*pmc = 0;
   pd->*pmc = 0;   // C2647
   d.*pmc = 0;   // C2647

   // OK
   pc->*pmc = 0;
   c.*pmc = 0;
}