class myInt { private: int theValue; public: myInt() : theValue(0) {} public: myInt(int _x) : theValue(_x) {} int val() { return theValue; } }; class myIntAndStuff { private: int theValue; double theExtraFluff; public: myIntAndStuff() : theValue(0), theExtraFluff(1.25) {} myIntAndStuff(int _x) : theValue(_x), theExtraFluff(1.25) {} int val() { return theValue; } }; class myArray { public: int array[16]; }; class hasAnInt { public: myInt theInt; hasAnInt() : theInt(42) {} }; myInt operator + (myInt x, myInt y) { return myInt(x.val() + y.val()); } myInt operator + (myInt x, myIntAndStuff y) { return myInt(x.val() + y.val()); } int main() { myInt x{3}; myInt y{4}; myInt z {x+y}; myIntAndStuff q {z.val()+1}; hasAnInt hi; myArray ma; return z.val(); // break here }