#include <iostream>
class Sprite
{
public:
Sprite() : d_value(0) {}
void method1() { std::cout << "Sprite::method1()\n"; }
void method2() { std::cout << "Sprite::method2()\n"; }
int d_value;
};
class Wrapper : private Sprite
{
public:
using Sprite::method1;
using Sprite::method2;
using Sprite::d_value;
};
int main()
{
Wrapper w;
w.method1();
w.method2();
w.d_value = 3;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgU3ByaXRlCnsKcHVibGljOgoJU3ByaXRlKCkgOiBkX3ZhbHVlKDApIHt9CgkKCXZvaWQgbWV0aG9kMSgpIHsgc3RkOjpjb3V0IDw8ICJTcHJpdGU6Om1ldGhvZDEoKVxuIjsgfQoJdm9pZCBtZXRob2QyKCkgeyBzdGQ6OmNvdXQgPDwgIlNwcml0ZTo6bWV0aG9kMigpXG4iOyB9CgkKCWludCBkX3ZhbHVlOwp9OwoKY2xhc3MgV3JhcHBlciA6IHByaXZhdGUgU3ByaXRlCnsKcHVibGljOgoJdXNpbmcgU3ByaXRlOjptZXRob2QxOwoJdXNpbmcgU3ByaXRlOjptZXRob2QyOwoJdXNpbmcgU3ByaXRlOjpkX3ZhbHVlOwp9OwoKaW50IG1haW4oKQp7CglXcmFwcGVyIHc7Cgl3Lm1ldGhvZDEoKTsKCXcubWV0aG9kMigpOwoJdy5kX3ZhbHVlID0gMzsKCglyZXR1cm4gMDsKfQ==