En CPP o C++ existe la palabra clave “auto” al declarar variables, su uso permite al programador ahorrar la declaración del tipo en una variable.

Dicho de otra manera, “auto” permite la inicialización de variables sin especificar el tipo.

Auto en CPP

Para declarar una variable automática con la palabra auto, se hace esto:

auto edad = 2;

La declaración de arriba probablemente sería:

int edad = 2;

Pero como estamos indicando el tipo de dato en la declaración, el compilador sabe el tipo de dato, y lo infiere por nosotros.

En ocasiones a esto se le llama Duck Typing y no es muy recomendado, pero funciona. También sirve para otros tipos de datos como cadenas, flotantes, etcétera.

Si declaramos un tipo de dato e intentamos, por ejemplo, sumarlo con uno de distinto tipo, el compilador emitirá un error:

warning: adding ‘int’ to a string does not append to the string

Esto es debido a que CPP no es un lenguaje débilmente tipado, por lo tanto, aunque permite la inicialización de variables sin especificar el tipo, no soporta la operación entre datos de distintos tipos, al menos que sea genéricos.

#include <iostream>

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

int main() {
  auto edad = 20 + 1;
  std::cout << "La edad: " << edad << "\n";

  auto nombre = "Luis";
  std::string apellidos = " Cabrera Benito";
  auto nombreCompleto = nombre + apellidos;
  std::cout << "Nombre completo: " << nombreCompleto << "\n";

  auto resultado = sumar(1, 2);
  std::cout << "La suma: " << resultado;
}

Como puedes observar en el código, “auto” también se puede usar como resultado de una llamada a una función.

Finalmente quiero mencionar que la palabra reservada a “auto” en C++ es el equivalente a asignar con := en Golang; por ejemplo:

edad := 20 + 1

El operador se parece al pico de un pato, es por eso que se le llama también “Duck typing” (o al menos así se cuenta).

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto