#include<iostream>
using namespace std;
class Point
{
private:
int x, y;
public:
Point(int x1, int y1) { x = x1; y = y1; }
// Copy constructor
// Point(const Point &p2) {x = p2.x; y = p2.y; }
void set()
{
x=50;
y = 100;
}
int getX() { return x; }
int getY() { return y; }
};
int main()
{
Point p1(10, 15); // Normal constructor is called here
Point& p2( p1);
// p2 = p1;
cout << "p1.x = " << p1.getX() << ", p1.y = " << p1.getY();
cout << "\np2.x = " << p2.getX() << ", p2.y = " << p2.getY();
p2.set();
cout << "\np1.x = " << p1.getX() << ", p1.y = " << p1.getY();
cout << "\np2.x = " << p2.getX() << ", p2.y = " << p2.getY();
// Copy constructor is called here
// Let us access values assigned by constructors
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBQb2ludAp7CnByaXZhdGU6CiAgICBpbnQgeCwgeTsKcHVibGljOgogICAgUG9pbnQoaW50IHgxLCBpbnQgeTEpIHsgeCA9IHgxOyB5ID0geTE7IH0KCiAgICAvLyBDb3B5IGNvbnN0cnVjdG9yCiAgICAvLyBQb2ludChjb25zdCBQb2ludCAmcDIpIHt4ID0gcDIueDsgeSA9IHAyLnk7IH0KCiAgICB2b2lkIHNldCgpCiAgICB7CiAgICAgICAgeD01MDsKICAgICAgICB5ID0gMTAwOwogICAgfQogICAgaW50IGdldFgoKSAgICAgICAgICAgIHsgIHJldHVybiB4OyB9CiAgICBpbnQgZ2V0WSgpICAgICAgICAgICAgeyAgcmV0dXJuIHk7IH0KfTsKCmludCBtYWluKCkKewogICAgUG9pbnQgcDEoMTAsIDE1KTsgLy8gTm9ybWFsIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCBoZXJlCiAgICBQb2ludCYgcDIoIHAxKTsKICAgIC8vIHAyID0gcDE7CiAgICBjb3V0IDw8ICJwMS54ID0gIiA8PCBwMS5nZXRYKCkgPDwgIiwgcDEueSA9ICIgPDwgcDEuZ2V0WSgpOwogICAgY291dCA8PCAiXG5wMi54ID0gIiA8PCBwMi5nZXRYKCkgPDwgIiwgcDIueSA9ICIgPDwgcDIuZ2V0WSgpOwogICAgcDIuc2V0KCk7CiAgICBjb3V0IDw8ICJcbnAxLnggPSAiIDw8IHAxLmdldFgoKSA8PCAiLCBwMS55ID0gIiA8PCBwMS5nZXRZKCk7CiAgICBjb3V0IDw8ICJcbnAyLnggPSAiIDw8IHAyLmdldFgoKSA8PCAiLCBwMi55ID0gIiA8PCBwMi5nZXRZKCk7CiAgICAgLy8gQ29weSBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgaGVyZQoKICAgIC8vIExldCB1cyBhY2Nlc3MgdmFsdWVzIGFzc2lnbmVkIGJ5IGNvbnN0cnVjdG9ycwoKCiAgICByZXR1cm4gMDsKfQ==