¿Cómo acceder a una variable global, si hay una variable local con el mismo nombre en C ++?

En este artículo, vamos a ver cómo acceder a un if variable global ya existe una variable local con el mismo nombre en C ++?

En el siguiente ejemplo,

Vemos que hay una variable local que tiene mismo nombre que una variable global. If ejecutamos el siguiente programa, a continuación, la salida será:

#include <iostream>
using namespace std;
//global variable
int var = 10;
int main()
{
//local variables
//outer scope
int var = 5;
{
//inner scope
int var = 1;
cout << "var(inner scope): " << var << endl;
}
cout << "var(outer scope): " << var << endl;
return 0;
}

Salida:

var(inner scope): 1
var(outer scope): 5

En el ejemplo anterior, vemos la variable global también se declara como local y es por eso que tuvo el valor de ámbito local. Para asegurar, que toma el valor global de alcance, tenemos que utilizar el operador de resolución de ámbito para poblar el valor global de alcance.

A continuación se muestra la versión modificada:

#include <iostream>
using namespace std;
//global variable
int var = 10;
int main()
{
//local variables
//outer scope
int var = 5;
{
//inner scope
int var = 1;
cout << "var(inner scope): " << var << endl;
//using scope resolution operator access the global value
cout << "var(global value in inner scope): " << ::var << endl;
}
cout << "var(outer scope): " << var << endl;
//using scope resolution operator access the global value
cout << "var(global value in outer scope): " << ::var << endl;
return 0;
}

Salida:

var(inner scope): 1
var(global value in inner scope): 10
var(outer scope): 5
var(global value in outer scope): 10


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *