#include <iostream>
using namespace std;
struct Number
{
int value;
public:
Number(int v)
{
value = v;
}
Number operator+(Number &n)
{
Number result(0);
result.value=value + n.value;
return result;
}
void display()
{
cout << value << endl;
}
};
int main()
{
Number n1(5);
Number n2(10);
Number n3 = n1 + n2; /// Number n3 = n1.operator+(n2);
n3.display();
Number n4= n1+n2+n3; ///Number n4 = n1.operator+(n2.operator+(n3));
n4.display();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IE51bWJlcgp7CiAgICBpbnQgdmFsdWU7CnB1YmxpYzoKICAgIE51bWJlcihpbnQgdikKICAgIHsKICAgICAgICB2YWx1ZSA9IHY7CiAgICB9CiAgICBOdW1iZXIgb3BlcmF0b3IrKE51bWJlciAmbikKICAgIHsKICAgICAgICBOdW1iZXIgcmVzdWx0KDApOwogICAgICAgIHJlc3VsdC52YWx1ZT12YWx1ZSArIG4udmFsdWU7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KCiAgICB2b2lkIGRpc3BsYXkoKQogICAgewogICAgICAgIGNvdXQgPDwgdmFsdWUgPDwgZW5kbDsKICAgIH0KfTsKCmludCBtYWluKCkKewogICAgTnVtYmVyIG4xKDUpOwogICAgTnVtYmVyIG4yKDEwKTsKICAgIE51bWJlciBuMyA9IG4xICsgbjI7IC8vLyBOdW1iZXIgbjMgPSBuMS5vcGVyYXRvcisobjIpOwogICAgbjMuZGlzcGxheSgpOwogICAgTnVtYmVyIG40PSBuMStuMituMzsgLy8vTnVtYmVyIG40ID0gbjEub3BlcmF0b3IrKG4yLm9wZXJhdG9yKyhuMykpOwogICAgbjQuZGlzcGxheSgpOwp9Cg==