[c++] 데이터 타입의 캡슐화와 정보은닉
C++에서는 캡슐화(encapsulation)와 정보은닉(information hiding)을 통해 데이터를 보호하고 관리할 수 있습니다. 이는 객체지향 프로그래밍에서 중요한 개념으로, 코드의 유지보수성과 안정성을 향상시킵니다.
캡슐화 (Encapsulation)
캡슐화란 데이터와 그 데이터를 처리하는 함수를 하나의 단위로 묶는 것을 말합니다. 이를 통해 데이터의 상태를 보호하고, 함수를 통해 데이터에 접근할 수 있도록 할 수 있습니다. 이를 통해 외부에서 데이터에 잘못된 접근을 하는 것을 방지할 수 있습니다.
class EncapsulationExample {
private:
int data;
public:
void setData(int newData) {
data = newData;
}
int getData() {
return data;
}
};
위 예시에서 setData
와 getData
함수를 통해 data
에 접근하고 설정할 수 있으며, data
는 private
으로 선언되어 외부에서 직접 접근할 수 없습니다.
정보은닉 (Information Hiding)
정보은닉은 객체 내부의 세부 구현을 외부로부터 숨기는 것을 말합니다. 이를 통해 객체의 내부 구현이 변경되더라도 외부 코드에 영향을 끼치지 않도록 합니다.
class InformationHidingExample {
private:
int secretData;
public:
int accessData() {
// 복잡한 연산 또는 유효성 검사
return secretData;
}
};
위 예시에서 secretData
변수는 private
으로 선언되어 외부에서 직접 접근할 수 없으며, accessData
함수를 통해 간접적으로 접근할 수 있습니다.
위와 같이 C++에서는 캡슐화와 정보은닉을 통해 데이터를 보호하고 객체의 내부 구현을 숨기는 것이 가능합니다. 객체지향 프로그래밍의 장점을 최대한 활용하기 위해 이러한 개념을 적절히 활용하는 것이 중요합니다.
References
- Stroustrup, B. (2013). The C++ Programming Language. Addison-Wesley.