본문 바로가기

카테고리 없음

[C++ 독학하기] 9. 클래스, 접근 제어 지시자

반응형

안녕하세요. 취업한 공대누나입니다.

오늘은 C++에서 가장 많이 보는 개념 중의 하나인 클래스에 대해 공부해보도록 하겠습니다.


1. 클래스 개념과 클래스 선언하기

C언어에 구조체가 있다면 C++에는 클래스가 있습니다.

간단하게 말해서는 클래스는 함수를 포함할 수 있는 구조체라고 생각하시면 됩니다.

선언하는 문법은 왼쪽 그림에 있는 내용과 같습니다.

어려운 말들이 몇 개 나오니까 오른쪽을 같이 보면서 설명하도록 하겠습니다.

우선 저는 STUDENT라는 클래스 이름을 가진 클래스를 선언해주었습니다.

해당 클래스 안에는 이름과, 나이가 멤버 변수로 정의되어 있습니다.

그리고 Print()라는 함수가 정의되어 있는데요. 이런 것을 메소드라고도 합니다.

중요한 것은 name과 age가 Print 함수 내부에 선언된 지역 변수가 아니라 클래스 멤버 변수라는 것입니다.

그리고 클래스 정의 마지막에 세미콜론을 붙이는 것도 잊지 말아주세요.

 


2. 접근 제어 지시자

위에서 public이라는 것은 접근 제어 지시자라고 합니다.

그렇다면 이것은 왜 사용하는 것일까요?

제작자 스스로 자신이 만든 클래스의 특정 요소에 사용자가 접근할 수 없게 하는 것입니다.

즉 일종의 보호 장치와 같다고 생각하시면 됩니다.

또한 중요한 자료를 은폐할 수 있어서 외부에서 호출되거나 노출되면 안되는 정보들에 대한 접근을 제한할 수 있습니다.

 

접근 제어 지시자의 종류에는 public, private, protected가 있습니다.

public

public은 그 의미 그대로 공개된 것입니다. 프로그램 어디에서나 접근이 가능합니다.

public 멤버는 .연산자를 사용해서 어디에서나 액세스 할 수 있습니다.

private

private는 외부에서 접근하지 못하며 내부에서만 접근이 가능합니다.

protected

그리고 protected는 상속 관계에 있는 파생 클레스에서의 접근만 허용합니다.

 

별도로 접근 제어 지시자가 없으면 기본 접근 제어지시자는 private입니다.

참고로 구조체의 경우 기본 접근 제한자가 public입니다.

이 점이 클래스와 구조체가 가장 다른 차이점 중 하나라고 할 수 있습니다.

 

이 때 private라고 선언한 변수를 외부에서 접근하려고 하면 액세스 할 수 없다는 에러가 발생하게 됩니다.


다음 시간에는 생성자와 소멸자에 대한 공부를 해보도록 하겠습니다.

감사합니다.

 

반응형