83. C++ const 멤버 함수

C++ const 멤버 함수

1. 개요

1.1 문서 개요

이 문서는 C++에서 const 멤버 함수의 개념과 특징에 대해 설명합니다. const 멤버 함수는 객체 상태를 변경하지 않는 함수로, 클래스 설계의 안정성과 일관성을 보장합니다.

2. 내용

2.1 const 멤버 함수의 정의와 문법

2.1.1 문법 구조

class Example {
public:
    int getValue() const;
};
  • 함수 선언 뒤에 const 키워드를 붙이면 해당 함수는 멤버 변수를 수정할 수 없습니다.

2.1.2 적용 대상

  • const 멤버 함수는 const 객체에서도 호출 가능합니다.
  • this 포인터의 타입은 const ClassName* const로 간주됩니다.

2.2 const 함수에서의 제한

2.2.1 변경 불가한 요소

  • const 멤버 함수 내에서는 비정적 멤버 변수의 값을 수정할 수 없습니다.
  • 비-const 멤버 함수는 호출할 수 없습니다.

2.2.2 mutable 예외

class Sample {
private:
    mutable int counter;
public:
    void increment() const {
        counter++;  // mutable은 const 함수 내에서도 변경 가능
    }
};

2.3 const 멤버 함수의 필요성과 이점

  • 객체의 상태를 보호하고 함수의 부작용을 줄이는 데 유리합니다.
  • const 객체나 참조를 사용할 때 유연성을 제공합니다.
  • 인터페이스 명확성과 코드 문서화에 도움이 됩니다.

3. 마무리

const 멤버 함수는 클래스의 불변성을 유지하기 위한 수단으로, 주로 읽기 전용 접근자에 사용됩니다. mutable을 활용하면 제한된 수정이 가능하며, 객체의 상태를 명확히 구분하는 데 유용합니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!
위로 스크롤