Variables en C++

🙎‍♂️ Binario Assembler 📆 23/10/2024

📁 Programación, C++ ⌛ 10 min de lectura

► Variables y constantes: Variables en C++

Una variable es un espacio de memoria que se usa para almacenar datos. Cada variable tiene un nombre único y un tipo de dato específico que determina el tamaño y el formato de la memoria.

Características

  • El valor de una variable se puede cambiar durante la ejecución del programa.
  • Una variable es solo un nombre dado a una ubicación en memoria, toda operación que vaya ha realizarse afectará la ubicación en esa memoria.
  • Todas las variables deben declararse antes de su uso.

Declaración de variables

Para declarar una variable, se debe especificar el tipo de dato y el nombre de la variable de la siguiente manera:

Imágen de prueba
  • Tipo de dato: en esta variable se pueden almacenar distintos tipos de datos.
  • nombre de la variable: nombre dado a la variable.
  • valor: es el valor inicial almacenado en la variable.

Inicialización de variables

Existen 2 formas para inicializar variables, el primero es asignando un valor inicial al momento de declararla y la otra forma es declarando solo el nombre de la variable y luego inicializarlo más adelante en un determinado punto del programa.

Ejemplo:

Imágen de prueba

Tipos de datos comunes

En C++, existen varios tipos de datos que se pueden usar para declarar variables, las más conocidas son:

  • int: son datos de tipo número entero.
  • float: son datos de tipo número de punto flotante simple.
  • double: son datos de tipo número de punto flotante de precisión doble.
  • char: son datos de tipo solo caracter.
  • string: son datos de tipo cadena de caracteres.
  • bool: son datos de tipo booleano (true o false).

Input:

Imágen de prueba
🔳 Output

Tu nombre es: Erick
Tu edad es: 10
Eres mayor de edad?:1
Estado civil: S
La temperatura promedio es: 36.5
El costo de la bebida es $9.99
                 

Proceso exitoso!

Tipos de variables

Las variables se pueden clasificar en diferentes categorías basadas en su ámbito y tiempo de vida.

  1. Variables locales

    Las variables locales son declaradas dentro de una función, que es un bloque delimitado por llaves '{ }', o una estructura de control (if, for, etc).

    Estas variables solo son accesibles dentro de su ámbito (scope) donde son declaradas. Su tiempo de vida empieza cuando se ejecuta la variable y termina cuando se sale del bloque en el que fueron declaradas.

  2. Input:

    Imágen de prueba

    En este ejemplo todas la variables han sido declaradas en el scope de la función main(), quiere decir que todas las variables que se encuentran dentro del cuerpo de main() solo serán accedidas por dicha función a eso nos referimos con variables locales.

    Su tiempo de vida termina cuando la función termine de ejecutar línea por línea cada sentencia.

    🔳 Output
    
    Nombre: Pablo
    Edad: 17
    Sexo: M
                      

    Proceso exitoso!

  3. Variables de instancia

    Conocidas como variables de miembro no estáticos, son aquellas que se declaran dentro de una clase pero fuera de cualquier método. Cada instancia u objeto de una clase tiene su propia copia de estas variables.

    Su tiempo de vida está enlazado al tiempo de vida del objeto al que pertenece.

  4. Input:

    Imágen de prueba

    Creamos la clase Clock (Reloj) que dentro de su ámbito tendrá los siguientes atributos:

    • color y shape como string
    • sound y pendulum como bool

    Los atributos de Clock son de tipo string (cadena de caracteres) y bool que solo puede tener un valor el de verdadero o falso.

    Así mismo, dentro de la misma clase, creamos dos métodos para Clock.

    • El método mostrarColor()
    • El método mostrarForma()

    Estos métodos nos permiten imprimir por consola los valores que vamos definir a nuestros objetos al momento de instanciarlas, podemos hacer varias copias de objetos con diferentes valores en sus atributos.

    Una vez terminada nuestra plantilla de la clase Clock, debemos dar valor a los atributos y hacer el llamado a los métodos a través de la intancia, para instanciar un objeto debemos llamarlo desde la función principal main().

    Imágen de prueba

    En este caso creamos en nuestra función principal dos objetos uno se llama dePared y el otro dePulsera ambos son objetos instanciados de la clase Clock.

    Las variables de instancia son generadas mediante un punto (.) y son objetos que han sido instanciados de una clase padre. Para el caso del reloj dePared estamos instanciando después del punto sus atributos color y pendulum, de igual manera para el reloj dePulsera se está instanciando sus atributos shape y sound, esto nos permite tener un mejor control de datos mediante objetos y hace que nuestro código no sea redundante.

    Lo mismo pasa cuando queremos llamar a un método la instancia sería objeto.método(), en este caso pedimos al programa, que el reloj dePared ejecute el método mostrarColor() y el reloj dePulsera ejecute el método mostrarForma(), para al final tener el siguiente resultado por consola.

    🔳 Output
    
    *** Variables de instancia ***
    RELOJ DE PARED
    Color del reloj: Azul
    Estado de sonido: 8
    
    RELOJ DE PULSERA
    Forma del reloj: circulo
    Estado de pendulo: 7
                      

    Proceso exitoso!

    Este modo de trabajar con clases, atributos y métodos se llama paradigma de Programación Orientada a Objetos, que es un concepto más avanzado de la programación y que lo veremos más adelante con mayor detenimiento.

  5. Variables estáticas

    Una variable de tipo static es un miembro estático de una clase. Es decir, que este tipo de variable es compartida por todas las instancias de la clase.

    Por otro lado, una variable static local dentro de una función mantiene su valor entre llamadas a funciones. Veamos un caso sencillo de una variable estática local.

    Tenemos el salario de un empleado que es de 2000 USD y hay una regla en la empresa que decreta que el trabajador tendrá un aumento de salario cada 5 años. Dicho aumento se calcula con el incremento inicial del 2% y cada cinco años este incremento deberá duplicarse por lo que el aumento mantendrá su valor cada vez que se actualice a fin de que el salario del empleado vaya incrementándose cada cinco años, entonces es importante que tengamos una variable de tipo static para que el valor del incremento se mantenga al igual que el salario actual. Dicho esto, para que nuestro programa tenga una estructura organizada sería recomendable trabajar con una función aparte del main(), que solo se encargue de hacer el calculo del aumento de salario cada cinco años.

    Esta función la llamaremos augment(), dicho subproceso se encargará del trabajo pesado, cuando querramos ver el resumen del aumento de salario de un empleado cada 5 años, lo haremos llamándolo desde la función main().

  6. Input:

    Imágen de prueba

    En la función augment(), hemos creado tres varaibles de tipo static con los siguientes valores iniciales:

    • increase = 0.02
    • newSalary = 2000
    • year = 2000

    Esto quiere decir que sus valores se mantendrá y no se reiniciarán. Entonces, dentro del cuerpo de dicha función duplicaremos la variable increase y a la variable year le sumaremos 5 años cada vez que invocamos la función augment(), para que ambos valores se actualicen.

    Hacemos el llamado tres veces a la función augment() para obtener el siguiente resultado.

    🔳 Output
    
    *** Variables static ***
    AÑO: 2005
    SALARIO INICIAL: $2000
    SALARIO ACTUAL: $2080
    
    AÑO: 2010
    SALARIO INICIAL: $2000
    SALARIO ACTUAL: $2246.4
    
    AÑO: 2015
    SALARIO INICIAL: $2000
    SALARIO ACTUAL: $2605.82
                      

    Proceso exitoso!

Comprender los diferentes tipos de variables y sus casos de uso, es fundametal para programar en C++. Cada tipo de dato y categoría se utiliza en diferentes contextos, está en manos del programador saber donde debe aplicar cada una de estas características cuando se presenta un problema en específico.

Importante: Acerca de los tipos de variables locales, de instancia y estáticas tendremos un apartado más detallado en las próximas lecciones. De momento solo debes quedarte con los conceptos de las variables sus tipos y categorías.

Imagen del autor

Publicado por: Binario Assembler

Programador profesional, especialista en Backend y Frontend.

¡Este verano estudia con nosotros!

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.