#include<iostream>
class Base{
private:
int _privateVar;
protected:
int protectedVar;
public:
int publicVar;
Base():protectedVar(100){}
virtual void publicMethod(int someValue, int anotherValue)
{
protectedVar = someValue;
publicVar = anotherValue;
std::cout<<"In Base";
}
};
class Dervied: public Base{
protected:
int protectedVar;
virtual void publicMethod(int someValue, int anotherValue)
{
//protectedVar = someValue;
// publicVar = anotherValue;
std::cout<<"In Derived";
std::cout<<protectedVar ;
}
public:
Dervied():protectedVar(1000){}
};
int main(void)
{
Dervied d;
Base *ptr = &d;
ptr->publicMethod(10, 20);
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CmNsYXNzIEJhc2V7CiAgICBwcml2YXRlOgogICAgICAgIGludCBfcHJpdmF0ZVZhcjsKCiAgICBwcm90ZWN0ZWQ6CiAgICAgICAgaW50IHByb3RlY3RlZFZhcjsKCiAgICBwdWJsaWM6CiAgICAgICAgaW50IHB1YmxpY1ZhcjsKICAgIEJhc2UoKTpwcm90ZWN0ZWRWYXIoMTAwKXt9CiAgICB2aXJ0dWFsIHZvaWQgcHVibGljTWV0aG9kKGludCBzb21lVmFsdWUsIGludCBhbm90aGVyVmFsdWUpCiAgICB7CiAgICAgICAgcHJvdGVjdGVkVmFyID0gc29tZVZhbHVlOwogICAgICAgIHB1YmxpY1ZhciA9IGFub3RoZXJWYWx1ZTsKICAgICAgICBzdGQ6OmNvdXQ8PCJJbiBCYXNlIjsKICAgIH0KfTsKCmNsYXNzIERlcnZpZWQ6IHB1YmxpYyBCYXNlewoKICAgIHByb3RlY3RlZDoKICAgICAgICBpbnQgcHJvdGVjdGVkVmFyOwogICAgdmlydHVhbCB2b2lkIHB1YmxpY01ldGhvZChpbnQgc29tZVZhbHVlLCBpbnQgYW5vdGhlclZhbHVlKQogICAgewogICAgICAgIC8vcHJvdGVjdGVkVmFyID0gc29tZVZhbHVlOwogICAgICAgLy8gcHVibGljVmFyID0gYW5vdGhlclZhbHVlOwogICAgICAgIHN0ZDo6Y291dDw8IkluIERlcml2ZWQiOwogICAgICAgIHN0ZDo6Y291dDw8cHJvdGVjdGVkVmFyIDsKICAgIH0KICAgIHB1YmxpYzoKICAgICAgICAgRGVydmllZCgpOnByb3RlY3RlZFZhcigxMDAwKXt9Cn07CgppbnQgbWFpbih2b2lkKQp7CiAgICBEZXJ2aWVkIGQ7CiAgICBCYXNlICpwdHIgPSAmZDsKICAgIHB0ci0+cHVibGljTWV0aG9kKDEwLCAyMCk7CiAgICByZXR1cm4gMDsKfQ==