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