规避C++继承机制的“隐藏”陷阱
C++没有重载父类的概念,当子类有父类同名函数时,子类函数将隐藏掉父类函数。强制调用父类需要在调用处加上域运算符。若必须实现OOP中重载父类的功能,需要加上 using 父类名::父类同名函数。如下所示:
class A { public: virtual print(void); virtual print(int a); } class B : public A { public: using A::print; //*加这句 virtual print(float a); } int main() { B* b = new B(); b->print(); //这里可用 //若不加using A::print; 这里需要写b->A::print(); }