Что такое управляемые объекты и неуправляемые объекты в C ++ / CLI? - PullRequest
1 голос
/ 03 мая 2011

Что такое управляемые объекты и неуправляемые объекты в C ++ / CLI

Ответы [ 3 ]

5 голосов
/ 03 мая 2011

Управляемые объекты - это особенность платформы .NET и ее реализации на языке, подобном C ++, и их память управляется сборщиком мусора .NET. Сам C ++ не имеет такой концепции, и лучший (в общем) способ управления всеми ресурсами (не только памятью) называется RAII .

4 голосов
/ 03 мая 2011

Концепция Managed / Unmanaged обычно не является C ++.Это технология Microsoft .Net.

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

Среды, такие как Java и .Net, решают эту проблему с помощью сборщиков мусора.Разработчик не должен больше удалять память, сборщик мусора сделает это за него.

В «родных» языках .Net (например, C #) весь язык работает с концепцией сборщика мусора.Чтобы упростить переход от обычных простых приложений C ++ к .Net, Microsoft добавила некоторые расширения в свой компилятор C ++, чтобы разработчики на C ++ уже могли воспользоваться преимуществами .Net.

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

0 голосов
/ 03 мая 2011

Управляемых объектов не существует в C ++.

Они существуют в Microsoft .NET расширения до C ++, и полное объяснение будет немного длинным, извините.

...