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
}