[개념] Chapter 4.1 지역 변수의 범위와 지속기간
카테고리: Cpp
태그: Cpp
”{ }” : 블록
    #include <iostream>
    int main(){
        using namespace std;
        int apple = 5;
        cout << apple << endl; // 5
        {
            apple = 1; // 위의 apple과 같은 apple
            cout << apple << endl; // 1
        }
        cout << apple << endl; // 1
    }
    #include <iostream>
    int main(){
        using namespace std;
        int apple = 5;
        cout << apple << endl; // 5
        {
            int apple = 1; // 위의 apple과 다른 apple
                           // 이 scope안에서만 살아남을 수 있다.
            cout << apple << endl; // 1
        }
        cout << apple << endl; // 5
    }
이름이 같은 경우 같은 블럭안에
- 최소한의 범위를 갖게 가급적 변수가 살아남는 범위를 줄이려고 함
 
함수는 선언과 정의를 분리할 수 있다. 선언은 여러 곳에 나올 수 있지만, 정의는 한 곳에만 나와야 함
    #include <iostream>
    namespace work1{
        int a = 1;
        void doSomething(){
            a += 3;
        }
    }
    namespace work2{
        int a = 1;
        void doSomething(){
            a += 5;
        }
    }
    int main(){
        using namespace std;
        work1::a;
        work1::doSomething();
        work2::a;
        work2::doSomething();
        return 0;
    }
- :: : 영역(범위) 결정 연산자 (scope resolution operator)
 
C++17 부터 nested namespace 사용 가능
    namespace work1::work11::work111{
        doSomething();
    }
    int main(){
        using namespace std;
        work1::work11::work111::doSomething();
    }
        
        
        
        
        
      
댓글남기기