i2.set(i2.get()+=i1.get());
I guess if you break it in more lines it would be fine.
lvalue is a value that has an address. For example 2 = a; is illegal 2 does not has an address.
Why are you using printf,scanf(c) and also want to apply operator overloading (c++)? Is there a particular reason?
what is the problem with printf() and scanf() is both these functions are not part of standard library of c++ if yes then what is the problem with that...........