Подтвердить что ты не робот

Разница между управляемыми С++ и С++

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

Ответ 3

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

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

Ответ 5

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

Ответ 6

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