"this" is a pointer to the object itself, "delete" de-allocates the memory pointed to by the argument. In this case the class would "kill itself" by freeing the memory block where it sits. Anyway: don't do it! Its dangerous to do it implicitly as that and hidden from the users eye... ask yourself what would happen if you add a line cout << a12.x before returning?!
Oh yes because you proggy is small and fast...so you de-allocate the memory yes? a12 kinds-of still points to a point in memory where the object happens to be...now consider you create a new object in the mean time, the space in memory is free and pretty so your program decides to place the new object where a12 used to be. now a12 points to some memory inside a different object...what happens is a huge fuckup!