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語句才被支持 。