#include<iostream>
using namespace std;
class A
{
private:
public:
virtual void DoIt(void)=0;
A(void){};
~A(void){};
};
class B:
public A
{
private:
int Num;
public:
virtual void DoIt(void){Num=7;cout<<"its done";};
B(void){};
~B(void){};
};
A& returnValue(void)
{
B item;
return item;
}
int main()
{
A& item=returnValue();
item.DoIt();
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNsYXNzIEEKewpwcml2YXRlOgpwdWJsaWM6CiAgICB2aXJ0dWFsIHZvaWQgRG9JdCh2b2lkKT0wOwogICAgQSh2b2lkKXt9OwogICAgfkEodm9pZCl7fTsKfTsKY2xhc3MgQjoKICAgICAgICBwdWJsaWMgQQp7CnByaXZhdGU6CiAgICBpbnQgTnVtOwpwdWJsaWM6CiAgICB2aXJ0dWFsIHZvaWQgRG9JdCh2b2lkKXtOdW09Nztjb3V0PDwiaXRzIGRvbmUiO307CiAgICBCKHZvaWQpe307CiAgICB+Qih2b2lkKXt9Owp9OwpBJiByZXR1cm5WYWx1ZSh2b2lkKSAKewogICAgICAgIEIgaXRlbTsKICAgIHJldHVybiBpdGVtOwp9CmludCBtYWluKCkKewogICAgQSYgaXRlbT1yZXR1cm5WYWx1ZSgpOwogICAgaXRlbS5Eb0l0KCk7CiAgICByZXR1cm4gMDsKfQ==