#include <iostream>
class Interface
{
public:
virtual ~Interface() {}
virtual void myIfMethod() = 0;
};
class Derived : public Interface
{
private:
void myIfMethod(){std::cout << "private method invoked via public interface" << std::endl;}
};
int main()
{
Interface* myObj = new Derived;
myObj->myIfMethod();
delete myObj;
return 0;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KIAogICAgY2xhc3MgSW50ZXJmYWNlCiAgICB7CiAgICBwdWJsaWM6CiAgICAgICAgdmlydHVhbCB+SW50ZXJmYWNlKCkge30KICAgICAgICB2aXJ0dWFsIHZvaWQgbXlJZk1ldGhvZCgpID0gMDsKICAgIH07CiAKICAgIGNsYXNzIERlcml2ZWQgOiBwdWJsaWMgSW50ZXJmYWNlCiAgICB7CiAgICBwcml2YXRlOgogICAgICAgIHZvaWQgbXlJZk1ldGhvZCgpe3N0ZDo6Y291dCA8PCAicHJpdmF0ZSBtZXRob2QgaW52b2tlZCB2aWEgcHVibGljIGludGVyZmFjZSIgPDwgc3RkOjplbmRsO30KICAgIH07CiAKICAgIGludCBtYWluKCkKICAgIHsKICAgICAgICBJbnRlcmZhY2UqIG15T2JqID0gbmV3IERlcml2ZWQ7CiAgICAgICAgbXlPYmotPm15SWZNZXRob2QoKTsKICAgICAgICBkZWxldGUgbXlPYmo7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9