this is a pointer, it has the type Point*. If you wanted to return a pointer (Point*) you could return this (but you shouldn't here). If you want to return a reference (Point&), you must dereference the pointer with *this like you did. If you want to return an object (Point), you must also dereference the pointer with *this, and then a copy is automatically made and returned.

