The asterisk in C++ means many things depending on its place in the program. In this specific instance, it modifies the meaning of myClass
to be a pointer to an instance of MyClass
, rather than an instance of MyClass
.
The difference between the two is that the lifetime of an instance ends when it goes out of scope, while an instance that you allocate and reference through a pointer remains valid even after a pointer goes out of scope.
It is valid to have a declaration like this:
MyClass myClass; // no "new"
In this case, it is not necessary to use new
, but the instance's life time is tied to the scope of the variable myClass
.