#include <iostream>
class s
{
public:
s(): p(new int) {}
s(const s& src)
{
std::cout << "Copy\n";
p = src.p;
}
void Display() const // Display method just display
{
std::cout << "Value at p :" << *p << std::endl << p << std::endl;
}
void UpdateP( int x = 0 )
{
*p = x;
}
private:
int* p;
};
int main()
{
s s1;
s s2 = s1;
s1.UpdateP(200);
s1.Display();
s2.Display();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3Mgcwp7CiAgICBwdWJsaWM6CglzKCk6IHAobmV3IGludCkge30KCiAgICAgICAgcyhjb25zdCBzJiBzcmMpCiAgICAgICAgeyAKICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJDb3B5XG4iOwogICAgICAgICAgICBwID0gc3JjLnA7CiAgICAgICAgfQoKICAgICAgICB2b2lkIERpc3BsYXkoKSBjb25zdCAgICAvLyBEaXNwbGF5IG1ldGhvZCBqdXN0IGRpc3BsYXkKICAgICAgICB7CiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAiVmFsdWUgYXQgcCA6IiA8PCAqcCA8PCBzdGQ6OmVuZGwgPDwgcCA8PCBzdGQ6OmVuZGw7CiAgICAgICAgfQoKICAgICAgICB2b2lkIFVwZGF0ZVAoIGludCB4ID0gMCApCiAgICAgICAgewogICAgICAgICAgICAqcCA9IHg7CiAgICAgICAgfQogICAgcHJpdmF0ZToKICAgICAgICBpbnQqIHA7Cn07CgppbnQgbWFpbigpCnsKICAgIHMgczE7CiAgICBzIHMyID0gczE7ICAgIAogICAgczEuVXBkYXRlUCgyMDApOwogICAgczEuRGlzcGxheSgpOwogICAgczIuRGlzcGxheSgpOwogICAgcmV0dXJuIDA7Cn0=