ref class Base
{
public:
virtual void Goo()
{
Show("Base::Goo");
}
virtual void Boo()
{
Show("Base::Boo");
}
virtual void Doo()
{
Show("Base::Doo");
}
};
ref class Derived : Base
{
public:
//Overrides Base::Goo
virtual void Goo()
{
Show("Derived::Goo");
}
//Overrides Base::Boo as above
virtual void Boo() = Base::Boo
{
Show("Derived::Boo");
}
//Hides Base::Doo
virtual void Doo() new
{
Show("Derived::Doo");
}
};
void _tmain()
{
Base^ r = gcnew Derived();
r->Goo();
r->Boo();
r->Doo();
}
cmVmIGNsYXNzIEJhc2UKewpwdWJsaWM6CiAgICB2aXJ0dWFsIHZvaWQgR29vKCkKICAgIHsKICAgICAgICBTaG93KCJCYXNlOjpHb28iKTsKICAgIH0KICAgIAogICAgdmlydHVhbCB2b2lkIEJvbygpCiAgICB7CiAgICAgICAgU2hvdygiQmFzZTo6Qm9vIik7CiAgICB9CiAgICAKICAgIHZpcnR1YWwgdm9pZCBEb28oKQogICAgewogICAgICAgIFNob3coIkJhc2U6OkRvbyIpOwogICAgfQp9OwoKcmVmIGNsYXNzIERlcml2ZWQgOiBCYXNlCnsKcHVibGljOgogICAgLy9PdmVycmlkZXMgQmFzZTo6R29vCiAgICB2aXJ0dWFsIHZvaWQgR29vKCkKICAgIHsKICAgICAgICBTaG93KCJEZXJpdmVkOjpHb28iKTsKICAgIH0KICAgIAogICAgLy9PdmVycmlkZXMgQmFzZTo6Qm9vIGFzIGFib3ZlCiAgICB2aXJ0dWFsIHZvaWQgQm9vKCkgPSBCYXNlOjpCb28KICAgIHsKICAgICAgICBTaG93KCJEZXJpdmVkOjpCb28iKTsKICAgIH0KICAgIAogICAgLy9IaWRlcyBCYXNlOjpEb28KICAgIHZpcnR1YWwgdm9pZCBEb28oKSBuZXcKICAgIHsKICAgICAgICBTaG93KCJEZXJpdmVkOjpEb28iKTsKICAgIH0KfTsKCnZvaWQgX3RtYWluKCkKewogICAgQmFzZV4gciA9IGdjbmV3IERlcml2ZWQoKTsKICAgIHItPkdvbygpOwogICAgci0+Qm9vKCk7CiAgICByLT5Eb28oKTsKfQ==