[개념] Chapter 4.1 지역 변수의 범위와 지속기간

Date:     Updated:

카테고리:

태그:

”{ }” : 블록

    #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();
    }

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글남기기