Question

Le titre des sujets est en fait ma question. Et la deuxième question est: quand dois-je utiliser quoi de ces deux-là?

Était-ce utile?

La solution

Lorsqu'elle n'est pas spécifiée, C ++ est un C ++ non géré, compilé en code machine. En C ++ non géré, vous devez gérer l'allocation de mémoire manuellement.

Le C ++ géré est un langage inventé par Microsoft, qui se compile en bytecode exécuté par le .NET Framework. Il utilise principalement la même syntaxe que C ++ (d'où son nom) mais est compilé de la même manière que C # ou VB.NET; fondamentalement, seule la syntaxe change, par exemple en utilisant '- >' pour pointer sur un membre d'un objet (au lieu de '.' en C #), en utilisant '::' pour les espaces de noms, etc.

Le C ++ géré a été conçu pour faciliter la transition du C ++ classique au .NET Framework. Il n’est pas destiné à être utilisé pour démarrer de nouveaux projets (C # est préférable).

Autres conseils

"Géré C ++" fait référence à un langage inclus dans Visual Studio.NET/VisualStudio.NET 2003. Il a depuis été obsolète , le dernier fichier .net C ++ étant C ++ / CLI.

Vous pouvez coder C ++ natif de deux manières différentes. La première consiste à compiler directement en code machine avec uniquement le système d'exploitation entre vous et la plate-forme (matériel). Le deuxième codage natif est effectué avec MFC (Microsoft Foundation Classes). C’est la même chose que dans le premier exemple, sauf pour l’utilisation de MFC.

Le C ++ géré utilise le CLR (Common Language Runtime). Le CLR ainsi que les bibliothèques de classes du framework .net constituent le .NET Framework. Cette norme C ++ / CLI gérée utilise le framework .Net avec le langage MSIL (Microsoft Intermediate Language). Cette norme fonctionne en mappant sur le code machine uniquement lorsque le programme s'exécute à l'aide d'un compilateur juste-à-temps. Si votre code s'exécute sur différentes plates-formes matérielles, l'utilisation du code géré sera beaucoup plus facile. Comme pour toute chose, il y a un léger prix à payer pour la commodité, car le code natif fonctionnera plus rapidement.

Je pense que vous devriez consulter cette question .

C ++ géré signifie que l’allocation de mémoire, la gestion et le garbage collection sont gérés par la machine virtuelle. Alors que dans " regular " C ++, vous devrez allouer et libérer de la mémoire.

Vous utiliserez le C ++ géré lorsque vous souhaitez utiliser une bibliothèque de classes C ++ native à partir du code géré. Dans ce cas, vous encapsulez les classes non gérées dans des classes C ++ managées, puis vous les utiliserez dans n’importe quel langage CLR.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top