[C++5] 클래스

모옹·2023년 12월 15일
0

C++

목록 보기
5/10

5. 클래스


5-1. 클래스와 구조체의 차이점

구조체는 클래스의 일종이다.
구조체의 정의에서 struct 대신 class를 사용하면 클래스를 선언할 수 있다.

다만 구조체의 경우 Car A = {"A", 100, 0}; 이런식으로 변수를 선언할 수 있지만, 클래스는 Car A; 이렇게 정의해주는 것만 가능하다.

.. 그럼 초기화는?

클래스 내에 선언된 변수는 동일 클래스 내에서 선언된 함수에서만 접근이 가능하다.

.. 그럼 접근은 어떻게?

*클래스는 정의를 하는 과정에서 각각의 변수 및 함수의 접근 허용 범위를 별도로 선언할 수 있다..

구조체 역시 클래스이므로 접근 범위를 설정할 수 있는데, 설정하지 않았을 때의 default값의 차이가 있다.


5-2. 클래스의 접근제어 지시자

접근 제어 지시자를 선언하게 되면, 이후 등장하는 변수나 함수에는 해당 범위 내에서 접근이 가능하게 된다.

접근제어 지시자의 종류는 다음과 같다.

종류의미
public어디서든 접근 허용
protected상속관계에 놓여있을 때, 유도 클래스에서의 접근 허용
private클래스 내에 정의된 함수에서만 접근 허용

접근제어 지시자의 성질은 다음과 같다.

  • 접근제어 지시자 뒤에는 :이 붙는다.
  • 함수나 변수는 가장 늦게 선언된 접근 제어 지시자의 영향을 받는다.
  • 함수의 정의를 클래스 밖으로 빼도, 함수 내에서는 private으로 선언된 변수에 접근 가능하다.
  • 구조체로 정의된 클래스는 별도로 접근 범위를 설정하지 않으면 public으로 선언된다.
  • 클래스로 정의된 클래스는 별도로 접근 범위를 설정하지 않으면 private으로 선언된다.

<출처 : 윤성우의 열혈 C++ 프로그래밍>
위 책을 공부하며 정리한 내용입니다.

0개의 댓글