[C++]정보은닉

dd_ddong·2022년 7월 14일
0

c++

목록 보기
15/38

private 변수

class의 변수의 경우 외부에서 변수들에 접근할 수 있다면 잘못된 값이 저장이 될 가능성이 있다.
따라서 private로 변수들을 선언하고 잘못된 값이 저장되지 않도록 안전한 형태로만 변수 접근을 허용하도록 해야한다.

Access Function

class Test
{
private:
	int member1;
    int member2;
public:
	int GetMember1() const { 
    	return member1;
    }
    int GetMember2() const{
    	return member2;
    }
    void SetMember1(int num){
    	//잘못된 값 검사코드
    	member1 = num;
    }
}

멤버변수 member1에 접근할 수 있는 방법은 GetMember1SetMember1 뿐이다.

따라서 멤버변수의 값을 변경하고 싶을 땐 SetMember1을 호출해야하고 SetMember을 통해 추가적인 검사도 할 수 있다.

이러한 함수들을 Access함수라고 한다.

const 함수

const가 붙으면 다음과 같은 효과가 있다.

  1. 이 함수 내에서 멤버변수 값을 변경하지 못한다.
  2. const함수 내에서 const가 아닌 함수의 호출이 제한된다.

1.int GetMenber() const { num = 5; } : 멤버변수를 변경하려 하면 컴파일 에러가 생긴다.

2.void ShowNum () const { cout << GetMember(); } : GetMember가 const 선언이 없다면 컴파일 에러가 생긴다. const가 아니라면 간접적인 멤버 변경의 가능성이 생기기 때문이다.

-> 다른 객체의 멤버함수의 경우 const가 아니더라도 멤버변경 가능성이 없기 때문에 ㄱㅊ

0개의 댓글