2008-09-22 6 views
40

Название темы на самом деле - мой вопрос. И второй вопрос: когда я использую что из этих двух?Разница между управляемыми C++ и C++

+0

Управляемые расширения для C++ или просто управляемые C++ - это устаревший набор отклонения Microsoft от C++, включая грамматические и синтаксические расширения, ключевые слова и атрибуты, чтобы привести синтаксис и язык C++ к .NET Framework. Эти расширения позволяют использовать код C++ для среды Common Language Runtime (CLR) в виде управляемого кода, а также продолжать взаимодействие с собственным кодом. Управляемый C++ не был полностью автономным или полноценным языком программирования. https://en.wikipedia.org/wiki/Managed_Extensions_for_C%2B%2B#.E2.80.A6to_C.23 – 2015-11-13 17:33:11

ответ

43

Если не указано, C++ является неуправляемым C++, скомпилированным в машинный код. В неуправляемом C++ вы должны управлять распределением памяти вручную.

Managed C++ - это язык, разработанный Microsoft, который компилируется в байт-код, выполняемый .NET Framework. Он использует в основном тот же синтаксис, что и C++ (отсюда и имя), но скомпилирован таким же образом, как C# или VB.NET; в основном, только изменения синтаксиса, например. используя '->', чтобы указать на объект-объект (вместо «.» на C#), используя «::» для пространств имен и т. д.

Управляемый C++ был создан для облегчения перехода от классического C++ к. NET Framework. Он не предназначен для запуска новых проектов (предпочтительнее C#).

+1

Предупреждение о том, чтобы не использовать управляемый C++ для новых проектов. Начиная с Visual Studio 2008 года Управляемый C++ имеет некоторые функции, превосходящие C#. Они относятся к обработке объектов IDisposable. См. Http://msdn.microsoft.com/en-us/library/ms235315.aspx – morechilli 2008-09-22 13:19:52

0

Управляемый C++ означает, что выделение памяти, управление, сбор мусора обрабатывается виртуальной машиной. Если в «регулярном» C++ вам придется выделять и освобождать память.

9

«Управляемый C++» относится к языку, который был включен в Visual Studio.NET/VisualStudio.NET 2003. С тех пор он был deprecated, причем последний .net C++ является C++/CLI.

0

Вы используете управляемый C++, если хотите использовать собственную библиотеку классов C++ из управляемого кода. В этом случае вы переносите неуправляемые классы в управляемые C++, затем вы используете их на любом языке CLR.

3

Вы можете скопировать родной C++ двумя разными способами. Первый - это компиляция непосредственно машинного кода только с операционной системой между вами и платформой (Hardware). Второе собственное кодирование выполняется с помощью MFC (Microsoft Foundation Classes). Это то же самое, что и в первом примере, за исключением использования MFC.

Управляемый C++ использует CLR (Common Language Runtime). CLR вместе с библиотеками классов .net Framework составляют .NET Framework. Этот управляемый стандарт C++/CLI использует .Net framework вместе с MSIL (Microsoft Intermediate Language). Этот стандарт работает путем сопоставления с машинным кодом только тогда, когда программа выполняется с использованием компилятора только во времени. Если ваш код будет работать на разных аппаратных платформах, использование управляемого кода будет намного проще. Как и во всем, есть небольшая цена, чтобы платить за удобство, поскольку собственный код будет работать быстрее.

Смежные вопросы