class Base
{
public:
Base() {}
virtual ~Base() {}
};
class Derived : public Base
{
public:
Derived() {}
virtual ~Derived() {}
};
class Manager
{
public:
Manager(Base* b) {}
~Manager() {}
private:
Manager() {}
};
int main()
{
Derived* d = new Derived;
Manager* m = new Manager(d);
return 0;
}
Y2xhc3MgQmFzZQp7CnB1YmxpYzoKICAgIEJhc2UoKSB7fQogICAgdmlydHVhbCB+QmFzZSgpIHt9Cn07CgpjbGFzcyBEZXJpdmVkIDogcHVibGljIEJhc2UKewpwdWJsaWM6CiAgICBEZXJpdmVkKCkge30KICAgIHZpcnR1YWwgfkRlcml2ZWQoKSB7fQp9OwoKY2xhc3MgTWFuYWdlcgp7CnB1YmxpYzoKICAgIE1hbmFnZXIoQmFzZSogYikge30KICAgIH5NYW5hZ2VyKCkge30KcHJpdmF0ZToKICAgIE1hbmFnZXIoKSB7fQp9OwoKaW50IG1haW4oKQp7CiAgICBEZXJpdmVkKiBkID0gbmV3IERlcml2ZWQ7CiAgICBNYW5hZ2VyKiBtID0gbmV3IE1hbmFnZXIoZCk7CiAgICByZXR1cm4gMDsKfQ==