I am beginner for Visual C++ and currently just learning the concepts of it.
I came to know that there are 2 classes: Managed class & Value class.
Questions:
It is not that you only create handles for managed classes, the instances (or objects) of the managed classes are created on the managed heap and you are given a handle to access that instance.
The full answer is a wiki entry in it's own right, but I'll try give you an idea of what the issues here are;
gcroot
and raw pointers are generally used to mix the two. RAII classes help to manage these elements, but can be specific to your project, so general solutions don't always help.