下面代码可以编译通过,从代码中可以看出只要重载了指定对象的指针操作符重载时,编译器会自动转成父类指针类型
class OverLoadObjABase { public: int x; }; class OverLoadObjA: public OverLoadObjABase { }; class OverLoadObjB { public: __INLINE__ operator OverLoadObjA*() const { return (OverLoadObjA*)this; } }; void CalcOverload(OverLoadObjABase* pA) { pA->x ++; //非法 } // test * overload int _tmain(int argc, _TCHAR* argv[]) { OverLoadObjB objB; CalcOverload(objB); getchar(); return 0; }