C++托管扩展

C++托管扩展（Managed Extensions for C++）是对C++的一个属性和关键字的扩展，以便于在微软公司的.NET Framework进行编程。它也经常被称为托管C++。2002年由微软发布。
注意：C++托管扩展自Visual C++ 2005起被一个新的语言规范，正在标准化的C++/CLI所替换。
托管C++并非独立存在的编程语言，而仅仅是微软对C++的一个语法扩展，允许C++程序员在.NET框架和CLR的基础上进行托管编程。与C#和Visual Basic .NET相比，其主要优点是旧代码可以比较快地移植到新的平台上，而且即使不完全重写代码，也可以通过互操作在同一个模块中无缝集成托管和非托管代码，从新的.Net框架中获益。
.Net框架封装了大量的API，例如网络访问、字符串操作、数据访问、XML服务、图形界面控件库、邮件服务、加密服务、文件输入／输出，甚至是WMI管理，也使得应用程序员可以编写更加简洁的代码。目前只有托管C++及其后继者C++/CLI可以做到无缝集成托管和非托管代码，而在托管代码中调用COM的速度又相当慢，所以经常被用于其他语言和非托管代码之间的桥梁。
托管C++允许程序员编写托管代码，内存管理的工作现在可以让CLR去自动处理，访问时也增加了类型检查，减少了缓冲区溢出和内存泄漏的危险，增加了程序的稳定性，但是在性能敏感的应用中，庞大的.NET框架和缓慢的自动内存管理并不是必要的，传统非托管代码仍然是一些人的首选。
在面向对象编程方面，主要的变化是对多重继承的限制，这是因为CLR的限制和内存管理的需要。一个托管类不能多继承基类。同时，类属性和微软中间语言（MSIL）的引入也使得托管类可以在其他语言中使用和继承。
与此同时，托管C++引入了大量的关键字和语义转换，减少了代码的可读性和明确性。缺少在很多语言中都支持的泛型和for each语句也增加了其他语言的程序员转向托管C++的困难。在其后继者C++/CLI中泛型和for each语句才被支持。

比较 Managed C++

以下列出Managed C++ 与其它编程语言在类似观念上的差异。