class simple { int val; public: simple() {}; simple(int i) { val = i; } ~simple() { val = 0; }; simple operator +(const simple &arg); operator int(void) { return val; } }; simple simple::operator +(const simple &arg) { simple res; res.val = val + arg.val; return res; } #include simple g(33); int main(void) { simple a(15), b(42); char s[20]; itoa(int(a + b), s, 10); return 0; }