#include <iostream>
using std::cout;
using std::endl;
class Base {
public:
virtual void Func(int) { cout << "Base::Func Implementation" << endl; }
};
class Derived : public Base {
public:
// Bring Base::Func into derived class.
using Base::Func;
// Hides the Base::Func with same defined in base class.
void Func() { cout << "Derived::Func Implementation" << endl; }
};
int main()
{
Base *D = new Derived;
D->Func(5);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBzdGQ6OmNvdXQ7CnVzaW5nIHN0ZDo6ZW5kbDsKCmNsYXNzIEJhc2UgewoKcHVibGljOgoJdmlydHVhbCB2b2lkIEZ1bmMoaW50KSB7IGNvdXQgPDwgIkJhc2U6OkZ1bmMgSW1wbGVtZW50YXRpb24iIDw8IGVuZGw7IH0KfTsKCmNsYXNzIERlcml2ZWQgOiBwdWJsaWMgQmFzZSB7CgpwdWJsaWM6CgkvLyBCcmluZyBCYXNlOjpGdW5jIGludG8gZGVyaXZlZCBjbGFzcy4KCXVzaW5nIEJhc2U6OkZ1bmM7CgoJLy8gSGlkZXMgdGhlIEJhc2U6OkZ1bmMgd2l0aCBzYW1lIGRlZmluZWQgaW4gYmFzZSBjbGFzcy4KCXZvaWQgRnVuYygpIHsgY291dCA8PCAiRGVyaXZlZDo6RnVuYyBJbXBsZW1lbnRhdGlvbiIgPDwgZW5kbDsgfQp9OwoKaW50IG1haW4oKQp7CglCYXNlICpEID0gbmV3IERlcml2ZWQ7CglELT5GdW5jKDUpOwp9