반응형
캡슐화란 c++에서는 class 내부의 맴버 변수에 직접접근하는 방식이 아니라 간접적으로 맴버함수(매서드)를 사용하여 접근하는 형식을 말한다.
왜 직접 접근하지 않고 굳이 간접접근을 해야 하는걸까? 직접 접근하는 방식은 다른 객체에 의해 값이 변경될 수 도 있고 보안상 좋지 못한 방법이기 때문에 캡슐화의 정보은닉은 오류발생도 줄여주고 보안성을 향상시켜 준다.
요약하자면
1. 캡슐화는 데이터와 데이터를 처리하는 함수의 묶음이다.
2. 객체의 데이터를 직접 수정할수 없고 지정된 메서드를 통해서만 수정이 가능하다.(게터,세터)
3. 정보은닉으로 오류발생도 감소 및 보안성 향상이 된다.
1 2 3 4 5 6 7 8 9 10 11 | class test_class{ private: int value; public: void set_value(int value){ this->value = value; } int get_value(){ return this->value; } }; | cs |
캡슐화의 간단한 예시이다.
private 접근자를 사용하여 객체에서 직접 내부변수에 접근하지 못하게 하였고
세터(set_value)를 사용하여 변수의 값을 수정하며, 게터(get_value)를 사용하여 값을 가져온다.
반응형
'프로그래밍 > c++' 카테고리의 다른 글
[c++] virtual(가상함수,순수가상함수) (0) | 2018.12.19 |
---|---|
[c++] class의 상속 (부모class 및 자식class) (0) | 2018.12.19 |
[c++] class의 생성자 및 소멸자 (0) | 2018.12.19 |
[c++] class 정의 및 접근제한자 (0) | 2018.12.19 |
[c++] this 포인터 (0) | 2018.12.19 |