ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C/C++] const 잘 사용하기
    Tech/Development 2011. 7. 5. 15:01

    const를 어떻게 사용하고 있는지를 보면, C언어에 대한 조예가 어느정도 깊은지 알 수 있다고 한다. 실제로 아름답게 정리된 C 코드들을 보면 const를 자유롭게 활용하고 있는데, 이번 기회를 빌려 정리해보았다.

    const 자신의 왼편에 있는 키워드를 수식

    // const applies to whatever is on its immediate left
    const int *Constant //Constant is variable pointer to a constant integer
    int const *Constant // an alternative syntax which does the same things
    int * const Constant // Constant is constant pointer to a variable integer
    int const * const Constant // Constant is constant pointer to a constant integer.
    

    리턴값을 변경하지 못하게 만들 때 사용

    char *Function() { return "some text"; }
    Function()[1] = 'a';
    

    만약, Function()const char *로 선언되었다면 compiler가 두번째 줄에서 error를 출력했을 것이다. 따라서 프로그래머의 실수로 인한 잘못된 접근을 막을 수 있다. 이는 parameter passing에서도 똑같이 응용될 수 있다.

    내부 멤버 변수를 변경하지 않는 함수라는 의미로의 사용

    객체지향프로그래밍에서 클래스 함수에 const가 포함된다면, 이는 내부 멤버 변수들을 변경하지 않는 함수라는 을 것을 의미한다. 내부 멤버 변수에 접근하는 get()함수 같은걸 생각해보면 된다.

    class Class2
    {
        void Method1() const;
        int MemberVariable1;
    }
    

    이 경우, Method1()에서 MemberVariable1을 변경하려고 한다면 컴파일 단계에서 에러가 날 것이다. 주로 programmer가 실수로 인해 의도치 않게 변수값 변경하는 것을 막을 때 사용한다고 할 수 있고, 사용자에게도 클래스 함수의 역할을 명확히 해주는 장점이 있다.

    댓글

Copyright 2022 JY