Как обратиться к глобальной переменной из функции

146
13 сентября 2021, 05:20

Как обратиться к глобальной переменной из функции в которой уже имеется переменная с таким же названием? Допустим есть программа

#include <iostream>
int q=15;
void main()
{
    int q=10;
    std::cout<<q<<endl;
}

Как можно обратиться к глобальной q?

Answer 1

Для того что бы обратиться к переменной, которая определена не как локальная в функции, используйте оператор :: оператор разрешения области, перед переменной.

#include <iostream>
int q=15;
int main()
{
    int q=10;
    std::cout << ::q << std::endl; // выведет 15
}

Для избежания повторных, или же похожих вопросов, дополню, что этот оператор работает не только на локальных переменных, но и на области называемой namespace'ами.

Т.е. к примеру, у вас есть класс window, а так же есть namespace window {...:

namespace window
{
    int posX;
    class window
    {
        int posX;
        ...
    }
}

Вы так же можете обратиться к переменной расположенной в пространстве имен, прямо из класса, используя этот оператор:

namespace window
{
    class window {
        window(...)
        {
            posX = ::window::posX; // для примера
        }
        ...
    }
}
READ ALSO
Лишнее число в массиве

Лишнее число в массиве

Имею текстовый файл с неким содержимым

95
Задача диофантово уравнение c++

Задача диофантово уравнение c++

Даны натуральные числа a, b, cЕсли уравнение ax+by=c имеет решения в целых числах, то выберите то решение, в котором число x имеет наименьшее неотрицательное...

76
ошибки JS в консоли

ошибки JS в консоли

Что означает, когда ошибки в консоли указывают на саму библиотеку jQuery?

221
Где лучше хранить свои функции для Django?

Где лучше хранить свои функции для Django?

Есть сайт, работающий на Django 22

234