C# para programadores C++
1119
llamado por su nombre con la sintaxis
HacerAlgo(/*parámetros*/).
miembro)Función virtual que se define comomiembro de una claseMétodo Método virtualUd. también debe tener en cuenta las diferencias entre otro par de términos:
Término C++ Término C#
Instrucción compuesta Instrucción de bloquevalor-l
1
expresión-variableEn este apéndice utilizaremos siempre que sea posible la terminología asociada al lenguaje sobre el queestemos hablando.
Una comparación entre C# y C++
En esta sección resumiremos brevemente las diferencias y similitudes generales entre ambos lenguajes.
Diferencias
Las principales áreas en las que difieren C# y C++ son las siguientes:
❑
Destino de la compilación
– El código C++ normalmente se compila a lenguaje ensamblador. Porel contrario, C# se compila a un
lenguaje intermedio (IL)
, que presenta alguna similitud con loscódigos de bytes de Java. El lenguaje intermedio es convertido a continuación en código de máquinaejecutable mediante un proceso de compilación JIT. El código intermedio que se emite esalmacenado en un fichero o conjunto de ficheros conocido como
unidad de ensamblaje
(
assembly
). Una unidad de ensamblaje conforma esencialmente la unidad en la que se empaqueta elIL, correspondiendo a una DLL o fichero ejecutable que sería creado por un compilador de C++.
❑
Gestión de memoria
– C# ha sido diseñado para liberar al programador de las tareas relacionadascon la gestión de la memoria. Ello significa que en C# no es necesario liberar explícitamente lamemoria que ha sido solicitada dinámicamente, como se haría en C++. En lugar de eso, unrecolector de basura recupera periódicamente la memoria que deja de ser necesaria. Con vistas afacilitar este proceso, C# impone ciertas restricciones a cómo Ud. puede utilizar las variables que sealmacenan en memoria dinámica, y es más estricto en la verificación de los tipos que C++.
❑
Punteros
– Los punteros pueden utilizarse en C# del mismo modo que en C++, pero únicamentedentro de bloques de código que hayan sido específicamente marcados para ello. La mayor parte deltiempo C# se apoya en referencias al estilo de Java o VB para las instancias de clases, y el lenguajeha sido diseñado de forma tal que los punteros no son necesarios con tanta frecuencia como lo sonen C++.
❑
Sobrecarga de operadores
– C# no permite la sobrecarga explícita de tantos operadores como C++.Esto se debe fundamentalmente a que el compilador de C# automatiza esta tarea hasta cierto puntoutilizando cualquier sobrecarga definida para operadores elementales (como
=
) para resolverautomáticamente la sobrecarga de operadores combinados (
+=
).
1
La 'l' viene de 'left' (izquierda). Un valor-l (
l-value
en inglés) es una expresión que produce unareferencia a memoria, y por tanto puede situarse en el lado izquierdo de una instrucción deasignación (N. del T.)
Leave a Comment
Ya lo descargue. a los que quieren el apunte solo busquen en Google con el nombre: "C# para programadores C++ " y ahi aparece en pdf. Y a vos "Andy", aprende a compartir un poco...
no es muy util si no permitis el download ni imprimir...
3685722
Gracias
Gracias!!!!!. Me es muy util para la facultad n_n