C++

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.En C++, la expresión «C++» significa «incremento de C» y se refiere a que C++ es una extensión de C. A continuación se cita un programa de ejemplo Hola mundo escrito en C++: Al usar la directiva #include se le dice al compilador que busque e interprete todos los elementos definidos en el archivo que acompaña la directiva (en este caso, iostream).El mismo operador << se puede usar varias veces en la misma sentencia, de forma que gracias a esta característica podremos concatenar el objeto endl al final, cuyo resultado será imprimir un retorno de línea.Esto se repite para los otros dígitos de la contraseña para construir el número invertido.C++ tiene los siguientes tipos fundamentales: El modificador unsigned se puede aplicar a enteros para obtener números sin signo (por omisión los enteros contienen signo), con lo que se consigue un rango mayor de números naturales.Según la máquina y el compilador que se utilice los tipos primitivos pueden ocupar un determinado tamaño en memoria.La siguiente lista ilustra el número de bits que ocupan los distintos tipos primitivos en la arquitectura x86.Esta palabra reservada también puede usarse para indicar que una función no recibe parámetros, como en la siguiente declaración: Aunque la tendencia actual es la de no colocar la palabra «void».Una función como la declarada anteriormente no puede retornar un valor por medio de return: la palabra clave va sola.No es posible una declaración del tipo: En este sentido, void se comporta de forma ligeramente diferente a como lo hace en C, especialmente en cuanto a su significado en declaraciones y prototipos de funciones.Sin embargo, la forma especial void * indica que el tipo de datos es un puntero.Por ejemplo: Indica que memoria es un puntero a alguna parte, donde se guarda información de algún tipo.Es responsabilidad del programador recordar qué tipo de datos hay y garantizar el acceso adecuado.La segunda forma tiene dos parámetros: argc, un número que describe el número de argumentos del programa (incluyendo el nombre del programa mismo), y argv, un puntero a un array de punteros, de argc elementos, donde el elemento argv[i] representa el i-ésimo argumento entregado al programa.Alternativamente puede dejarse en blanco, en cuyo caso el compilador es responsable de agregar la salida adecuada.Para esto, se utiliza el operador new, el cual asigna memoria para almacenar al objeto creado, y además llama a su constructor(por lo que se le pueden enviar parámetros).El operador new se utiliza de la siguiente manera: Además, con el operador new[] se pueden crear arrays (colecciones o listas ordenadas) de tamaño dinámico: Los destructores son funciones miembro especiales llamadas automáticamente en la ejecución del programa, y por tanto no tienen por qué ser llamadas explícitamente por el programador.El único caso en el que se debe invocar explícitamente al destructor de un objeto es cuando este fue creado mediante el operador new, es decir, que este vive en memoria heap, y no en la pila de ejecución del programa.Cuando una porción de memoria queda ocupada por una variable que ya no se utiliza, y no hay forma de acceder a ella, se denomina un 'memory leak'.Gracias a esto no es necesario crear ninguna instancia de la clase para llamar a esta función, sin embargo, solo se podrá acceder a los miembros estáticos de la clase dado que estos no están asociados al objeto sino al tipo.Estas no llevan el especificador de ámbito en su definición, tal y como haría un método miembro.Estas definiciones pueden utilizarse sin tener en cuenta la implementación que se hará de ellos.En C++ los métodos de las clases abstractas se definen como funciones virtuales puras.Un atajo recomendado para programas sencillos es la directiva using namespace, que permite acceder a los nombres de variables del paquete deseado en forma directa, siempre y cuando no se produzca alguna ambigüedad o conflicto de nombres.También está disponible cerr, similar a cout, usado para la salida estándar de errores.Por ejemplo: De esta forma, para mostrar un punto, solo habría que realizar la siguiente expresión: Es posible formatear la entrada/salida, indicando el número de dígitos decimales a mostrar, si los textos se pasarán a minúsculas o mayúsculas, si los números recibidos están en formato octal o hexadecimal, etc.Todos los contenedores son homogéneos, es decir, una vez que se declaran para contener un tipo de dato determinado, en ese contenedor, solo se podrán meter elementos de ese tipo.Además de los métodos push_back(const T&) y pop_back(), se agregan los métodos push_front(const T&) y pop_front(), que realizan lo mismo que los ya explicados, pero en el comienzo de la cola.Como tales, ahora son sujetos a sobrecarga, conversiones implícitas, etcétera.A pesar de su adopción generalizada, muchos programadores han criticado el lenguaje C++, incluyendo Linus Torvalds,[4]​ Richard Stallman,[5]​ y Ken Thompson.
Bjarne Stroustrup , creador de C++.