Lenguajes de Programación

Qué es Scope en C++

Cuando estamos desarrollando código, es muy importante saber cual es el alcance donde una variable puede utilizarse para que nuestro código funcione correctamente, este artículo tratamos el área de alcance de una variable en C++ 

Publicado el 05 de Septiembre de 2018
Compartir

Cuando estamos desarrollando código, es muy importante saber cual es el alcance donde una variable puede utilizarse para que nuestro código funcione correctamente, este artículo tratamos el área de alcance de una variable en C++.

Qué es un scope en C++

Un Scope es cuánto dura una variable en memoria, además de ver en qué parte de la misma se encuentra y cómo funciona.

Para los ejemplos emplearemos Visual Studio, como ya hemos visto en un video, uno de los mejores entornos de desarrollo integrado y de los más usados para Windows.

En el código siguiente:

#include <iostream>

reft
int main()
{
   int a = 5;

   getchar();
   return 0;
}

En el ejemplo tenemos una variable entera, de nombre a. Esta variable dura hasta que se acaba el bloque en el que se encuentra, es decir, en la línea 10.

Otro caso sería el siguiente:

#include <iostream>


int main()
{
   int a = 5;
   {
       int b = 4;
   }

   getchar();
   return 0;
}

En este caso, la variable b dura hasta el final de su bloque, en la línea 9.

Si quisiéramos imprimir por pantalla la variable b, si lo hacemos de esta forma, al compilar nos aparecerá un error indicando que la variable b no está declarada:

#include <iostream>


int main()
{
   int a = 5;
   {
       int b = 4;
   }

   std::cout << b << std::endl;

   getchar();
   return 0;
}

Para poder imprimir por pantalla esta variable b, deberíamos hacerlo así:

#include <iostream>


int main()
{
   int a = 5;
   {
       int b = 4;
      std::cout << b << std::endl;

   }

   getchar();
   return 0;
}

De esta forma podemos compilar el código y nos imprimirá en pantalla el valor 4, correspondiente a nuestra variable b.

¿Por qué ocurre así?

Las variables tienen esa duración limitada porque C++ tiene un tiempo de vida, en el que las variables se guardan en la pila, y se eliminan cuando la pila de la función desaparece. Es decir, se van creando las variables en el stack y se van sacando a medida que se van creando.

Por ejemplo, para esta función void, el tiempo de vida la variable a está dentro de esa función, pero cuando se elimina la misma, ya no podemos acceder a ella:

void f()
{
   int a = 3;
}

Esto ocurre también en diferentes partes de C++, como pueden ser los namespaces, que tienen otro scope diferente.

Un ejemplo sería:

namespace trial
{
   int a = 3;
}

En este caso la variable a está dentro del scope de trial.

Resumen final

Es muy importante conocer bien todo sobre el Scope, ya que debemos saber hasta cuánto duran las variables para poder saber así cuándo poder utilizarlas, detectando así estos errores sin perder tiempo en su depuración y agilizando el desarrollo de nuestro código.


Compartir este post

También te puede interesar...

Introducción a C++

Curso de introducción a C++

1 hora y 56 minutos · Curso

¿Quieres aprender a programar en C++? Con este curso de introducción aprenderás desde cero este lenguaje de programación tan versátil.

  • Lenguajes de programación
Tecnología

Cómo usar la librería Chrono en C++

29 Octubre 2018 Antonio José Checa Bustos
Programación genérica y concurrente

Curso de Programación genérica y concurrente con C++

1 hora y 58 minutos · Curso

Conoce los conceptos fundamentales de la programación genérica y concurrente para crear código reusable e independiente.

  • Metodologías
Artículos
Ver todos