Possible Duplicate:
The Definitive C++ Book Guide and List
What does the * mean when initialising a class? Normally in AS3 I would do this:
MyClass myClass = new MyClass
But I have seen this in c++
 MyClass *myClass = new MyClass
What is the star for? I've seen it used sometimes and not others.
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.
It's called a pointer. If you're using a C++11 compatible compiler, you can do the following:
auto myClass = std::make_shared<MyClass>();
If you were using a "raw" pointer, you would need to manually delete it when you are finished with the memory, with the shared_ptr, this isn't necessary.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With