정보 은닉, 캡슐화
- 정보 은닉
: 객체의 사용자는 객체의 내부 멤버 데이터의 구조에 대해 알 필요 없음.
-> 멤버 함수만 알면 됨.
- 캡슐화
: 멤버 함수를 통해 객체의 상태 변경이 가능하므로,
-> 객체의 상태를 안전하게 유지할 수 있음.
종류
1) private
: 해당 객체만 접근이 가능함.
-> 은닉성, 캡슐화를 가져옴.
2) public
-> 외부에서 접근이 가능함.
- get, set 등 .
get 함수는 함수내에서 데이터 변경 못하게 const 지정하자.
3) protected
: 파생 객체에서만 접근 가능한 제어지시자.
struct vs class 접근 지정자 디폴트값.
- struct : public
- class : private;
friend 함수
: 멤버 함수는 아니지만, private 멤버에 접근할 수 있게 하는 키워드임.
- 사용법.
1) 해당 객체에서 friend 함수 선언함.
-> 외부에서의 friend 함수는 객체의 private 멤버에 접근이 가능함.
problem
: 클래스와 private 데이터를 만들고, 외부 함수 func 만들어서 멤버 데이터에 접근하라.
- A 클래스 만들고, 외부 함수 func(A &obj) 만들어서 , A의 data 값을 4로 변경해서 출력하라.