Managed Types (C++/CL)


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at Managed Types (C++-CL).

The syntax for the declaration of managed types and the creation and use of objects of these types has been significantly altered from Managed Extensions for C++ to Visual C++. This was done to promote their integration within the ISO-C++ type system. These changes are presented in detail in the following subsections.

Declaration of a Managed Class Type
Discusses how to declare a managed class, struct, or interface.

Declaration of a CLR Reference Class Object
Discusses how to declare a reference class type object using a tracking handle.

Declaration of a CLR Array
Explains how to declare and initialize an array.

Changes in Constructor Initialization Order
Discusses key changes in class constructor initialization order.

Changes in Destructor Semantics
Discusses non-deterministic finalization, Finalize versus Dispose, ramifications for reference objects, and use of an explicit Finalize.

Note: The discussion of delegates is deferred until Delegates and Events in order to present them with event members within a class, the general topic of Member Declarations within a Class or Interface (C++/CLI).

C++/CLI Migration Primer
Classes and Structs