C++

C++ es un lenguaje de programación de alto nivel y de bajo nivel, es decir, puede estar embebido en microcontroladores o ser usado para programación de sistemas, con una velocidad de respuesta privilegiada y referente para otros lenguajes, de allí su faceta para construir una CLI (Interfaz de Línea de Comandos), incluso juegos. Puede verse como una implementación extendida del lenguaje C con Programación Orientada a Objetos (POO), por lo que se conservan los fundamentos funcionales y de programación estructurada de C.

Suele estar disponible para cada sistema, incluso para móviles (por ejemplo, con el marco de trabajo Qt, Felgo, incluso juegos con Real Engine), siendo popular en el caso de juegos. También puede ser interesante usar C++ como complemento con otros lenguajes (interoperabilidad), logrando así un tiempo de respuesta significativo. Cuando se piensa en una aplicación nativa se tiene de referencia a este lenguaje por su relación con LLVM (“Low Level Virtual Machine”, máquina virtual de bajo nivel escrita en C++ para posibilitar y optimizar ejecución de otro lenguaje de programación, tal como Kotlin y Dart).

Esta es una referencia ágil para quién tenga nociones de programación o codifique con algún otro lenguaje, también a modo de repaso y uso frecuente. Siendo así, tener esta información como memoria te resultará simple de acceder a los fundamentos, incluso como prueba de concepto sobre el lenguaje.

Tips esenciales del lenguaje

Para quien tenga habilidades, experticia en programación y/o requiera agilidad en conceptos técnicos, pueden resumirse los siguientes tips esenciales del lenguaje:

  1. Tipos de datos básicos: int, double, float, bool, char, string, array. Las variables se definen iniciando con el tipo de datos y luego el nombre.
  2. Las funciones se definen o comienzan con uno de los tipos de datos (o void si no retorna valor), luego los parámetros van entre paréntesis (...) iniciando también con el tipo de datos (y separando los parámetros con coma ,). Además, se usa return para retornar un valor. La función principal de un programa se denomina main.
  3. Para el bloque de la función o el flujo de control se usan llaves {}. Las sentencias deben terminar siempre con punto y coma ;.
  4. El flujo de control es semejante a lenguajes como C, Java, Javascript, Kotlin, es decir que se cuenta con una anatomía cercana para el uso de if, for, while, incluso para el manejo de excepciones (try).
  5. El constructor de una clase lleva el mismo nombre de la clase y la clase se define con la palabra reservada class. La definición de la clase debe terminar en }; y posteriormente se pueden implementar métodos que consisten en funciones que inicial con el nombre de la clase y ::.
  6. Introduce el concepto de punteros que contienen una dirección de memoria para hacer referencia a una variable y obtener o afectar su valor.

Ejemplo esencial

#include <iostream>

using namespace std;

int main()
{
    cout << "Hi there!" << endl;
    return 0;
}

La línea después de main se usa para dirigir la salida (cout) de una cadena en la pantalla y con un salto de fin de línea al final (endl).

Tipos de datos básicos

Declaración de variables

Se puede declarar variables enunciando el tipo de datos como en el siguiente ejemplo:

char variable = 'A';
int a = 1;
double b = 1.5;

Definición de métodos (o funciones)

int plus(int a, int b) {
    return a + b;
}

Comentarios

// Esto es un comentario de fin de línea

/*
   Este es un comentario de bloque
*/

Condicionamiento if / else (if)

if (i == 1) {
    cout << "one" << endl;
}
else if (i == 2) {
    cout << "two" << endl;
}
else {
    cout << "aha" << endl;
}

El Ciclo For

int index = 0;
for (index = 0; index < 10; index++) {
    cout << index << endl;
}

El Ciclo While

int i = 0;
while (i < 10) {
    i++;
}

Excepciones

try {
    ...
}
catch (int err) {
    ...
}

Puedes usar throw (por ejemplo: throw (1);) para forzar el lanzamiento de un error.

Clases

La programación orientada a objetos (OOP) tiene su propia base de conceptos que abre un capítulo aparte para su comprensión, se puede decir que se pasa de pensar en funciones a clases que agrupan métodos (funciones) y propiedades (variables), siendo de gran útilidad para la reutilización de código. Como referencia simplemente se presenta la anatomía de una clase.

class Shape {
    public:
        int sides;
        void print();
        Shape() {
            cout << "Hi there!\n";
        }
};

void Shape::print(string name, int sides) {
    cout << name << endl;
}

int main() {
    Shape shape;
    shape.print("square", 4);
    return 0;
}

© 2019 by César Arcila