К Т П           План занятия                                                              1                                           Страницы  | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 |

4. Область видимости переменных

Переменные должны определяться в максимально ограниченной области видимости. Например, если переменная используется только внутри вложенного блока, то она и должна быть определена в нем:

#include <iostream>
int main()
{
    // Не определяйте x здесь
    {
        // Переменная x используется только внутри этого блока, поэтому определяем её здесь
        int x(7);
        std::cout << x;
    }
    // В противном случае, переменная x может быть использована и здесь
    return 0;
}

Ограничивая область видимости, мы уменьшаем сложность программы, поскольку число активных переменных уменьшается. Таким образом, легче увидеть, где какие переменные используются. Переменная, определенная внутри блока, может использоваться только внутри этого же блока (или вложенных в него подблоков). Этим мы упрощаем понимание и логику программы.

Если во внешнем блоке нужна переменная, то её необходимо объявлять во внешнем блоке:

#include <iostream>
int main()
{
    int y(5); // мы объявляем переменную y здесь, потому что она нам будет нужна как во внутреннем, так и во внешнем блоке чуть позже
    {
        int x;
        std::cin >> x;
        // Если бы мы объявили y здесь, непосредственно перед её первым фактическим использованием,
        if (x == 4)
            y = 4;
    } // то она бы уничтожилась здесь
    std::cout << y; // а переменная y нам нужна еще здесь
    return 0;
}

Это один из тех редких случаев, когда вам может понадобиться объявить переменную до её первого использования.

Правило: Определяйте переменные в наиболее ограниченной области видимости.

 


Предыдущая        В начало страницы       Следующая
4