[디딤돌 C++] 14. 캡슐화 개요

학생) C언어의 구조체는 데이터만 캡슐화 가능! C++에서는 기능도 캡슐화 가능! 접근 지정자로 가시성 설정 가능!

이제 C++언어에서 캡슐화에 관한 사항을 알아보기로 해요.

 

캡슐화는 여러 개의 멤버를 하나의 형식으로 묶는 과정을 말합니다.

 

C언어에서는 구조체를 이용하여 캡슐화를 했었죠. C++언어에서도 구조체를 이용하여 캡슐화를 할 수 있습니다. 하지만 일반적으로 클래스를 이용하여 캡슐화를 할 때가 대부분입니다.

 

먼저 C언어에서의 캡슐화와 C++언어에서의 캡슐화의 차이를 간단하게 알아볼게요.

 

C언어에서 구조체에는 데이터만 멤버 필드(멤버 변수)로 캡슐화할 수 있었죠. 하지만 C++에서는 기능도 멤버 메서드로 캡슐화를 할 수 있습니다. 그리고 C언어에서는 캡슐화한 멤버를 모든 곳에서 접근할 수 있지만 C++언어에서는 구조체에 접근 지정자를 사용하여 가시성을 설정할 수 있습니다. 그리고 앞에서 얘기했듯이 C++에서는 클래스 문법을 제공하고 있어 신뢰성 높은 캡슐화를 할 수 있습니다.

 

다음은 C언어와 C++의 캡슐화를 비교하는 간단한 예제 코드예요. 앞으로 캡슐화에 관한 사항은 하나 하나 살펴볼 거예요. 여기에서는 한 번 비교해 보시고 코드를 작성해 보세요.

▷ 실행 결과

 

다음은 C++언어로 작성한 캡슐화 예제 코드예요.

▷ 실행 결과

 

이 책에서는 먼저 접근 지정자를 통해 가시성을 설정하는 방법과 이를 통한 장점이 무엇인지 살펴볼게요. 그리고 캡슐화할 수 있는 멤버들에 대해 하나 하나 살펴봅시다.

 

이 외에도 캡슐화에서는 형식 내에 고유한 정적 멤버를 제공하는데 개체의 멤버와 어떠한 차이가 있는지 살펴볼게요. 또한 const 키워드를 사용하여 상수화 멤버 필드나 상수화 멤버 메서드를 정의할 수 있는데 이들에 관한 사항도 살펴볼 거예요.

 

마지막으로 개체의 메서드 내부에서만 사용할 수 있는 특수한 키워드 this를 알아보기로 해요.


[C++ 무료 동영상 강의] 14. 캡슐화 개요