Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Qué es Scope en C++

Antonio José Checa Bustos
  • Escrito por Antonio José Checa Bustos el 05 de Septiembre de 2018
  • 1 min de lectura | Programación
Qué es Scope en C++
El reproductor de video será cargado en breves instantes.

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 

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 


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 


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 


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.

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars