Well, for one you are obfuscating your code to an extreme extent by not giving meaningful variable names. friend zz operator-(zz z); Secondly, the - operator is a binary operator. It accepts two operands, the left and the right. (-a) does nothing since you are using a binary operand as a unary operand (--a) which would decrement a if you overload properly, otherwise it decrements the pointer.
So which are you trying to accomplish, the binary operator( a-b ) or the unary operator( --a )?