Page 24 -
P. 24
1.2.4.2 지역 정의 1
지역 변수는 함수 안에서 선언한다. 지역 변수의 가시성/가용성은 함수 선언부의 { }로 둘러싸인 C+ + 기초
블록으로 제한한다.
만약 main 함수에서 π를 정의하면,
int main ()
{
const double pi = 3.14159265358979323846264338327950288419716939;
std::cout << "pi is " << pi << ".\n";
}
변수 π는 main 함수에서만 존재한다. 우리는 함수나 블록 안에 또 다른 블록을 정의할 수 있다.
int main ()
{
{
const double pi = 3.14159265358979323846264338327950288419716939;
}
std::cout << "pi is " << pi << ".\n"; // 오류: pi는 범위 밖에 있다.
}
이 예제에서 π의 정의는 함수 안에 있는 블록으로 제한한다. 따라서 함수의 나머지 부분에서 π를
출력하려고 하면 오류가 발생할 것이다.
>>pi<< is not defined in this scope.
왜냐하면 범위 밖에 있기(Out of Scope) 때문이다.
1.2.4.3 숨기기
같은 이름의 변수가 중첩된 범위에 있으면 오직 하나의 변수만 볼 수 있다. 안쪽 범위에 있는 변수
는 바깥쪽 범위에 있는, 이름이 같은 변수를 숨긴다. 예를 들어,
int main ()
{
int a = 5; // a#1을 정의한다.
{
035
모던c++_09.indd 35 2017-12-11 오전 11:02:55