C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al lenguaje de programación C mecanismos que permiten la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.
Posteriormente se
añadieron facilidades de programación genérica, que se sumaron a los paradigmas de programación estructurada y programación orientada a objetos. Por esto se suele
decir que el C++ es un lenguaje de programación multiparadigma.
Actualmente existe un
estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes
de compiladores más modernos. Existen también algunos intérpretes, tales como
ROOT.
Una particularidad del
C++ es la posibilidad de redefinir los operadores, y de poder crear nuevos tipos que se comporten como tipos fundamentales.
El nombre C++ fue propuesto por Rick Mascitti en el año 1983, cuando
el lenguaje fue utilizado por primera vez fuera de un laboratorio científico.
Antes se había usado el nombre "C con clases". En C++, la expresión
"C++" significa "incremento de C" y se refiere a que C++ es
una extensión de C.
Ventajas
- Lenguaje de programación orientado a objetos.
- Lenguaje muy didáctico, gracias a este lenguaje puedes aprender muchos otros lenguajes con gran facilidad, como C#, Java, Visual Basic, Javascript, PHP, entre otros.
- Es muy potente en lo que se refiere a creación de sistemas complejos, un lenguaje muy robusto.
- Permite elaborar aplicaciones sencillas como un "Hello World!" hasta sistemas operativos y mucho más, todo eso dependiendo del manejo del lenguaje.
- Actualmente, puede compilar y ejecutar código de C, ya viene con librerías para realizar esta labor.
- Es un lenguaje muy empleado, existen muchos tutoriales en línea, libros, códigos fuentes abiertos... hay material de sobra y basta para aprender lo necesario y mucho más con este lenguaje.
- Existen muchos algoritmos cuyo pseudocódigo se encuentra ya desarrollado en C++, de manera que puedes tomarlo y amoldarlo a tu solución (porque el que veas un fragmento de código no asegura que sea correcto al 100%).
- Lenguaje de programación orientado a objetos.
- Lenguaje muy didáctico, gracias a este lenguaje puedes aprender muchos otros lenguajes con gran facilidad, como C#, Java, Visual Basic, Javascript, PHP, entre otros.
- Es muy potente en lo que se refiere a creación de sistemas complejos, un lenguaje muy robusto.
- Permite elaborar aplicaciones sencillas como un "Hello World!" hasta sistemas operativos y mucho más, todo eso dependiendo del manejo del lenguaje.
- Actualmente, puede compilar y ejecutar código de C, ya viene con librerías para realizar esta labor.
- Es un lenguaje muy empleado, existen muchos tutoriales en línea, libros, códigos fuentes abiertos... hay material de sobra y basta para aprender lo necesario y mucho más con este lenguaje.
- Existen muchos algoritmos cuyo pseudocódigo se encuentra ya desarrollado en C++, de manera que puedes tomarlo y amoldarlo a tu solución (porque el que veas un fragmento de código no asegura que sea correcto al 100%).
Desventajas:
- Uso de DLLs (librerías dinámicas) muy complejo. Java y .Net han evolucionado estos conceptos manipulando las DLLs mediante los frameworks que proveen. En cambio, en C++ el desarrollador debe encargarse de cargar y liberar de memoria estas librerías, y correr los riesgos por el manejo de esta memoria.
- Elaborar un sistema en C++ es como construir un rascacielos: tiene buen soporte y es robusto, pero si existen errores en los pisos inferiores toda la parte superior se viene abajo terriblemente.
- Manejo de punteros y memoria respecto a ello. Claro, esta también es una gran ventaja porque permite un mejor control de la memoria y una buena administración de recursos de computadora, pero la inexperiencia de los desarrolladores o la pérdida de costumbre con este tipo de variables (sobre todo cuando son dobles o triples punteros, inclusive de mayor orden) los lleva al desastre.
- No es recomendable para desarrollo de páginas Web.
- Existen muchos entornos de programación para C++. No existen estándares para ello. De manera que puedes encontrar C++ para Unix/Linux, C++ para Windows, C++ para MacOS, y asi indistintamente. Además, en cada SO encuentras diferentes IDEs de desarrollo, y también encuentras IDEs para desarrollo de aplicaciones gráficas como Anjuta, Qt para Unix/Linux, Borland C++ Builder y Visual Studio C++ para Windows...
- Uso de DLLs (librerías dinámicas) muy complejo. Java y .Net han evolucionado estos conceptos manipulando las DLLs mediante los frameworks que proveen. En cambio, en C++ el desarrollador debe encargarse de cargar y liberar de memoria estas librerías, y correr los riesgos por el manejo de esta memoria.
- Elaborar un sistema en C++ es como construir un rascacielos: tiene buen soporte y es robusto, pero si existen errores en los pisos inferiores toda la parte superior se viene abajo terriblemente.
- Manejo de punteros y memoria respecto a ello. Claro, esta también es una gran ventaja porque permite un mejor control de la memoria y una buena administración de recursos de computadora, pero la inexperiencia de los desarrolladores o la pérdida de costumbre con este tipo de variables (sobre todo cuando son dobles o triples punteros, inclusive de mayor orden) los lleva al desastre.
- No es recomendable para desarrollo de páginas Web.
- Existen muchos entornos de programación para C++. No existen estándares para ello. De manera que puedes encontrar C++ para Unix/Linux, C++ para Windows, C++ para MacOS, y asi indistintamente. Además, en cada SO encuentras diferentes IDEs de desarrollo, y también encuentras IDEs para desarrollo de aplicaciones gráficas como Anjuta, Qt para Unix/Linux, Borland C++ Builder y Visual Studio C++ para Windows...
Versiones
El
C++ es un idioma de programcion, tomado de mejorar con el agregado de
pre-estructuras el idioma C.
EN general los programas en c++ son compatibles , los que tienen cierta diferencia son los compiladores.
Compilador, es un programa, que entiende el código y lo transforma en ordenes de maquina, El compilador tiene su sistema de detección de errores y su ayuda. Hay compiladores que solo procesan sobre consola es decir sobre la base del msdos o similar, otros permiten procesar en ventanas (windows) e incorporar objetos visuales a lo que es codificación.
Para consola, los mas comunes son el turbo c++ de borland, que admiten objetos o ventanas el Dev C++ , el Visual C++ el borland buid C++ y hay muchos mas.
El C++ agrega pre estructuras que es algo asi como las librerías que reciben el nombre de archivos de cabecera, cada compilador tiene sus librerías, y son compatibles entre si, salvo la forma de escribirse.
Por ejemplo en Turbo C++ #include <iostream.h> es equivalente al #include <iostream> del Dev C++ y el Visual C++ El TurboC++ y el DevC++ tienen el achivo de cabecera conio.h, pero no son iguales asi que no todas las funciones de este archivo son compatibles y entre Visual C++ pasa lo mismo.
Ahora, si tus dudas tienen que ver con que comenzas a aprender a rogramar, yo te recomiendo el turbo c++ de borland, es un compilador que tiene buena ayuda y formas de seguir fácilmente la ejecución del programa escrito en código. El problema es que esta en ingles, pero con un diccionario y algo de imaginación, se sale adelante.
EN general los programas en c++ son compatibles , los que tienen cierta diferencia son los compiladores.
Compilador, es un programa, que entiende el código y lo transforma en ordenes de maquina, El compilador tiene su sistema de detección de errores y su ayuda. Hay compiladores que solo procesan sobre consola es decir sobre la base del msdos o similar, otros permiten procesar en ventanas (windows) e incorporar objetos visuales a lo que es codificación.
Para consola, los mas comunes son el turbo c++ de borland, que admiten objetos o ventanas el Dev C++ , el Visual C++ el borland buid C++ y hay muchos mas.
El C++ agrega pre estructuras que es algo asi como las librerías que reciben el nombre de archivos de cabecera, cada compilador tiene sus librerías, y son compatibles entre si, salvo la forma de escribirse.
Por ejemplo en Turbo C++ #include <iostream.h> es equivalente al #include <iostream> del Dev C++ y el Visual C++ El TurboC++ y el DevC++ tienen el achivo de cabecera conio.h, pero no son iguales asi que no todas las funciones de este archivo son compatibles y entre Visual C++ pasa lo mismo.
Ahora, si tus dudas tienen que ver con que comenzas a aprender a rogramar, yo te recomiendo el turbo c++ de borland, es un compilador que tiene buena ayuda y formas de seguir fácilmente la ejecución del programa escrito en código. El problema es que esta en ingles, pero con un diccionario y algo de imaginación, se sale adelante.
Allí
hay una lista de compiladores
* XCode.
* Borland C++
* Codewarrior C++
* Comeau C++
* Cygwin (GNU C++)
* MINGW - Minimalist GNU for Windows.
* Dev C++ (IDE que usa MinGW)
* wx-Dev C++ (IDE basado en Dev C++)
* Digital Mars C++
* DJ Delorie's C++ development system for DOS/Windows (GNU C++)
* Edison Design Group C++ Front End
* Green Hills C++
* HP C++ para UNIX y HP C++ para OpenVMS.
* IBM C++
* Intel C++
* The LLVM Compiler Infrastructure.
* Mentor Graphics/Microtec Research C++
* Microsoft Visual C++
* Microsoft Visual Studio Express Editions
* Paradigm C++
* The Portland Group C++
* SGI C++
* Sun C++
* Sun Studio.
* WindRiver's Diab C++
* ZinjaI
* XCode.
* Borland C++
* Codewarrior C++
* Comeau C++
* Cygwin (GNU C++)
* MINGW - Minimalist GNU for Windows.
* Dev C++ (IDE que usa MinGW)
* wx-Dev C++ (IDE basado en Dev C++)
* Digital Mars C++
* DJ Delorie's C++ development system for DOS/Windows (GNU C++)
* Edison Design Group C++ Front End
* Green Hills C++
* HP C++ para UNIX y HP C++ para OpenVMS.
* IBM C++
* Intel C++
* The LLVM Compiler Infrastructure.
* Mentor Graphics/Microtec Research C++
* Microsoft Visual C++
* Microsoft Visual Studio Express Editions
* Paradigm C++
* The Portland Group C++
* SGI C++
* Sun C++
* Sun Studio.
* WindRiver's Diab C++
* ZinjaI
Especificaciones
No hay comentarios:
Publicar un comentario