C# es un lenguaje de programación de propósito general, moderno y orientado a objetos pronunciado como «C sostenido». Fue desarrollado por Microsoft dirigido por Anders Hejlsberg y su equipo.
C++ es un lenguaje de programación estático, multiparadigma y orientado a objetos. Al principio, C++ se denominó C con clases. Fue desarrollado por Bjarne Stroustrup en AT & T Bell Laboratories.
A continuación se muestran algunas de las principales diferencias entre C++ y C#:
Rasgo | C++ | C# |
---|---|---|
Gestión de la memoria | En C++, el programador realiza manualmente la gestión de la memoria. Si un programador crea un objeto, entonces es responsable de destruir ese objeto después de completar la tarea de ese objeto. | En C#, la gestión de la memoria la realiza automáticamente el recolector de elementos no utilizados. Si el programador crea un objeto y después de completar la tarea de ese objeto, el recolector de basura eliminará automáticamente ese objeto. |
Dependencia de la plataforma | El código C++ se puede ejecutar en cualquier plataforma. C++ se usa cuando la aplicación necesita comunicarse directamente con el hardware. | El código C# es específico de Windows. Aunque Microsoft está trabajando para hacerlo global, hasta ahora el sistema principal no brinda soporte para C#. |
Herencia múltiple | C++ admite herencia múltiple a través de clases. Significa que una clase puede extender más de una clase a la vez. | C# no admite herencias múltiples a través de clases. |
Cuenta de cheques encuadernada | En C++, el compilador no realiza la verificación de límites. Por error, si el programador intenta acceder a un índice de array no válido, dará un resultado incorrecto pero no mostrará ningún error de compilación. | En C#, el compilador realiza la verificación de la array. Por error, si el programador intenta acceder a un índice de array no válido, dará un error de compilación. |
Punteros | En C++, los punteros se pueden usar en cualquier parte del programa. | En C#, los punteros solo se pueden usar en modo no seguro. |
Tipo de idioma | C++ es un lenguaje de bajo nivel. | C# es un lenguaje orientado a objetos de alto nivel. |
Nivel de dificultad | C++ incluye características muy complejas. | C# es bastante fácil porque tiene una jerarquía de clases bien definida. |
Tipos de aplicaciones | C++ se usa típicamente para aplicaciones de consola. | C# se utiliza para desarrollar aplicaciones móviles, de Windows y de consola. |
Compilacion | El código C++ se convierte en código de máquina directamente después de la compilación. | El código C# se convierte en código de lenguaje intermedio después de la compilación. |
Orientado a objetos | C++ no es un lenguaje de programación orientado a objetos puro debido a los tipos de datos primitivos. | C# es un lenguaje de programación puro orientado a objetos. |
Especificadores de acceso | Los modificadores de acceso son public, private, protected. No contiene modificadores de acceso internos internos y protegidos. | En C#, public, private, protected, internal y protected internal se utilizan para los especificadores de acceso. |
Variable de prueba | En la declaración de cambio, la variable de prueba no puede ser una string. | En la declaración de cambio, la variable de prueba puede ser una string. |
Declaración de control | No contiene tal declaración de control de flujo adicional. | Además de for, while y do while; tiene otra declaración de control de flujo llamada para cada uno. |
Punteros de función | Tiene el concepto de punteros de función. | No tiene el concepto de punteros de función. |
binarios | En C++, el tamaño de los binarios es bajo y ligero. | En C#, el tamaño de los archivos binarios es alto debido a las bibliotecas generales. |
Recolección de basura | C++ no admite la recolección de basura. | La recolección de basura es compatible con C# |
Tipos de Proyectos | Se utiliza principalmente para proyectos de este tipo que se centran en acceder al hardware y mejorar el rendimiento. | Se utiliza principalmente en el desarrollo de aplicaciones modernas. |
Publicación traducida automáticamente
Artículo escrito por ankit15697 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA