C++
Области применения
Поиск…
Простая область блока
Объем переменной в блоке { ... }
, начинается после объявления и заканчивается в конце блока. Если есть вложенный блок, внутренний блок может скрыть область видимости переменной, которая объявлена во внешнем блоке.
{
int x = 100;
// ^
// Scope of `x` begins here
//
} // <- Scope of `x` ends here
Если вложенный блок начинается во внешнем блоке, новая объявленная переменная с тем же именем, которая находится перед внешним классом, скрывает первый.
{
int x = 100;
{
int x = 200;
std::cout << x; // <- Output is 200
}
std::cout << x; // <- Output is 100
}
Глобальные переменные
Чтобы объявить один экземпляр переменной, доступной в разных исходных файлах, можно сделать ее в глобальной области с ключевым словом extern
. Это ключевое слово говорит компилятору, что где-то в коде есть определение для этой переменной, поэтому его можно использовать повсюду, и все записи / чтения будут выполняться в одном месте памяти.
// File my_globals.h:
#ifndef __MY_GLOBALS_H__
#define __MY_GLOBALS_H__
extern int circle_radius; // Promise to the compiler that circle_radius
// will be defined somewhere
#endif
// File foo1.cpp:
#include "my_globals.h"
int circle_radius = 123; // Defining the extern variable
// File main.cpp:
#include "my_globals.h"
#include <iostream>
int main()
{
std::cout << "The radius is: " << circle_radius << "\n";'
return 0;
}
Выход:
The radius is: 123
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow