第二个问题是:我何时使用这两者中的哪一个?
当没有指定时,C++是非托管的C++,编译成机器代码。在非托管的C++中,您必须手动管理内存分配。
Managed C++是由微软发明的语言,它编译为由.NET Framework运行的字节码。它与C++大部分使用相同的语法(因此得名),但编译方式与C#或VB.NET相同;基本上只有语法改变,例如使用“->”来指向对象的成员(而不是在C#中使用“.”),使用“::”表示名称空间等。
Managed C++旨在简化从传统C++转移到.NET Framework的过程。它并不打算用于启动新项目(首选C#)。
"Managed C++" 是指包含在 Visual Studio.NET/Visual Studio.NET 2003 中的一种语言。它自那时起已被弃用,最新的.NET C++是C++/CLI。
Managed C++ 意味着内存分配、管理和垃圾回收由虚拟机处理。而在“常规”的 C++ 中,您需要分配和释放内存。