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

Второй вопрос: когда мне использовать что из этих двух?

Управляемые расширения для C++ или просто Managed C++ - это устаревший набор отклонений Microsoft от C++, включая грамматические и синтаксические расширения, ключевые слова и атрибуты, для переноса синтаксиса и языка C++ в .NET Framework. Эти расширения позволили коду C++ быть нацеленным на среду CLR в форме управляемого кода, а также продолжить взаимодействие с машинным кодом. Управляемый C++ не был полностью автономным или полноценным языком программирования. en.wikipedia.org/wiki/…

DmitryBoyko 13.11.2015 20:33
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
53
1
50 587
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

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

Думаю, стоит посмотреть этот вопрос.

Ответ принят как подходящий

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

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

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

Предупреждение о совете не использовать управляемый C++ для новых проектов. Начиная с Visual Studio 2008 и далее Managed C++ имеет некоторые функции, которые превосходят C#. Они относятся к работе с объектами IDisposable. См. msdn.microsoft.com/en-us/library/ms235315.aspx

morechilli 22.09.2008 17:19

Управляемый C++ и C++ / CLI - два разных зверя. Управляемый C++ - отвратительное расширение C++, которое никогда не должно было появиться в свет. C++ / CLI официально является отдельным языком, поэтому можно добавлять новые ключевые слова, и с ним гораздо приятнее работать.

Eclipse 22.09.2008 21:03

Так управляется C++ / CLI или нет?

Kyle Delaney 26.04.2018 03:00

@KyleDelaney C++ / CLI находится под управлением.

Laurent 09.09.2018 15:00

Вопреки распространенному мнению, Managed C++ компилируется не в байт-код, а в исполняемый файл в смешанном режиме, переключаясь между байт-кодом и собственным кодом, в зависимости от того, какие объекты используются. Можно создать полностью управляемый исполняемый файл с помощью C++ / CLI, если не используется ни одна из «небезопасных» функций C++ (например, CRT или STL).

rustyx 22.01.2019 23:45

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

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

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

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

Другие вопросы по теме