# Include <stdio. h>
Class RVO
{
Public:
RVO ()
{
Printf ("I am in constructor % d \ n", this );
}
RVO (const RVO & c_rvo)
{
Printf ("I am in copy constructor % d \ n", this );
}
~ RVO ()
{
Printf ("I am in destructor % d \ n", this );
}
RVO & operator = (const RVO & RHs)
{
Printf ("I am in operator % d = % d \ n", this, & RHs );
Return * this;
}
Int mem_var;
};
RVO mymethod (int I)
{
Printf ("3 \ n ");
RVO; // I am in constructor 1244896
Printf ("4 \ n ");
RVO. mem_var = I;
Printf ("5 \ n ");
Return (RVO); // 1244948cc ,~ 1244896
Printf ("6 \ n ");
}
Int main ()
{
Printf ("1 \ n ");
RVO; // I am in constructor 1245016
Printf ("2 \ n ");
RVO = mymethod (5); // I am in copy constructor
Printf ("7 \ n ");
Return 0 ;//~ 1245016
}
RVO mymethod (RVO & hddenobj, int I)
{
Printf ("3 \ n ");
RVO;
RVO. RVO (); // I am in constructor 1244896
Printf ("4 \ n ");
RVO. mem_var = I;
Printf ("5 \ n ");
Hddenobj. RVO (RVO); // I am in copy constructor
RVO .~ RVO ();
Return; // 1244948cc ,~ 1244896
Printf ("6 \ n ");
}
Int main ()
{
Printf ("1 \ n ");
RVO; // I am in constructor 1245016
Printf ("2 \ n ");
RVO = mymethod (5); // I am in copy constructor
Printf ("7 \ n ");
Return 0 ;//~ 1245016
}
1
I am in constructor 1245016
2
3
I am in constructor 1244888
4
5
I am in copy constructor 1244944
I am in destructor 1244888
I am in operator 1245016 = 1244944
I am in destructor 1244944
7
I am in destructor 1245016