C++ Hola Mundo


Ejemplo

Este programa imprime Hello World! al flujo de salida estándar:

#include <iostream>

int main()
{
    std::cout << "Hello World!" << std::endl;
}

Véalo en vivo en Coliru .

Análisis

Examinemos cada parte de este código en detalle:

  • #include <iostream> es una directiva de preprocesador que incluye el contenido del archivo de cabecera estándar de C ++ iostream .

    iostream es un archivo de encabezado de biblioteca estándar que contiene definiciones de los flujos de entrada y salida estándar. Estas definiciones se incluyen en el std nombres std , que se explica a continuación.

    Los flujos de entrada / salida (E / S) estándar proporcionan formas para que los programas obtengan entrada y salgan a un sistema externo, generalmente el terminal.

  • int main() { ... } define una nueva función llamada main . Por convención, la función main se llama a la ejecución del programa. Sólo debe haber una función main en un programa de C ++, y siempre debe devolver un número del tipo int .

    Aquí, el int es lo que se llama el tipo de retorno de la función. El valor devuelto por la función main es un código de salida.

    Por convención, un sistema que ejecuta el programa interpreta como exitoso un código de salida del programa 0 o EXIT_SUCCESS . Cualquier otro código de retorno está asociado con un error.

    Si no hay ninguna declaración de return , la función main (y, por lo tanto, el propio programa) devuelve 0 de forma predeterminada. En este ejemplo, no necesitamos escribir explícitamente la return 0; .

    Todas las demás funciones, excepto aquellas que devuelven el tipo void , deben devolver explícitamente un valor de acuerdo con su tipo de retorno, o de lo contrario no deben devolverlo en absoluto.

  • std::cout << "Hello World!" << std::endl; grabados "¡Hola mundo!" al flujo de salida estándar:

    • std es un espacio de nombres , y :: es el operador de resolución de alcance que permite buscar objetos por nombre dentro de un espacio de nombres.

      Hay muchos espacios de nombres. Aquí, usamos :: para mostrar que queremos usar cout desde el std nombres std . Para obtener más información, consulte Operador de resolución de alcance - Documentación de Microsoft .

    • std::cout es el objeto de flujo de salida estándar , definido en iostream , y se imprime en la salida estándar ( stdout ).

    • << es, en este contexto , el operador de inserción de flujo , llamado así porque inserta un objeto en el objeto de flujo .

      La biblioteca estándar define el operador << para realizar la inserción de datos para ciertos tipos de datos en flujos de salida. stream << content inserta el content en el flujo y devuelve lo mismo, pero el flujo actualizado. Esto permite encadenar inserciones de secuencias: std::cout << "Foo" << " Bar"; Imprime "FooBar" en la consola.

    • "Hello World!" es una cadena de caracteres literal , o un "texto literal". El operador de inserción de flujo para los literales de cadena de caracteres se define en el archivo iostream .

    • std::endl es un objeto especial de manipulador de flujo de E / S , también definido en el archivo iostream . Insertar un manipulador en un flujo cambia el estado del flujo.

      El manipulador de flujo std::endl hace dos cosas: primero inserta el carácter de fin de línea y luego vacía el búfer del flujo para forzar que el texto aparezca en la consola. Esto asegura que los datos insertados en la transmisión realmente aparezcan en su consola. (Los datos de transmisión generalmente se almacenan en un búfer y luego se "descargan" en lotes, a menos que se fuerce un vaciado de inmediato).

      Un método alternativo que evita la descarga es:

      std::cout << "Hello World!\n";
      

      donde \n es la secuencia de escape de caracteres para el carácter de nueva línea.

    • El punto y coma ( ; ) notifica al compilador que una declaración ha finalizado. Todas las declaraciones de C ++ y las definiciones de clase requieren un punto y coma finalizado.