[C++] 클래스와 상속

amudomolla·2023년 6월 23일
0

C++

목록 보기
10/12

참고 사이트


클래스


해당 클래스의 객체(Object 또는 Instance)를 생성하여 접근(Access)하고, 사용

class 클래스명 {
    접근제한자:
	   멤버 변수1(속성);
       멤버 변수2;
       ...
       
       멤버 함수1(행동);
       멤버 함수2;
       ...
};

✅ 접근지정자

  • public : 어디서든 접근이 가능 (외부에서도 모두 접근 가능)

  • protected : 클래스 내부에 정의된 함수에서만 접근 허용 (중요한 정보를 감출때 사용)

  • private : 기본적으로는 private이지만 상속관계에 놓여있을 때, 유도 클래스에서는 접근 허용


상속


1. 개념

  • 상속해주는 클래스 명칭 : 상위, 기초(base), 슈퍼(super), 부모(parent) 클래스
  • 상속받는 클래스 명칭 : 하위, 서브(sub), 자식(child) 클래스

2. 선언

class 클래스명 {
   // ..
};
class 상속클래스명 : 접근제한자 클래스명
{
   // ..
};

3. 특징

1) 기본적으로 private로 상속받기 때문에, public으로 하고 싶으면, 접근제한자 public을 입력

2) 부모의 private은 부모의 멤버 함수로만 접근 가능

3) 자식 클래스의 생성자는 부모 클래스의 멤버까지 초기화해줘야 한다.

(부모 클래스의 멤버 변수가 private일 경우) 부모의 멤버 변수는 부모의 멤버 함수를 통해 접근해야하기 때문에 부모의 생성자를 호출하는 것이 좋다.

4) 자식 클래스를 생성할 경우 부모 클래스의 생성자는 반드시 호출된다.

부모 클래스의 생성자를 명시하지 않으면, 부모 클래스의 기본 생성자가 호출된다.
다시 말해, 멤버 변수는 항상 생성자에 의해 초기화된다.

5) 소멸자의 호출 순서는 역순

생성자 호출 순서 : 부모의 생성자가 먼저 호출되고 자식 생성자가 이후에 호출
소멸자 호출 순서 : 자식이 먼저 소멸되고 그 후 부모 소멸


getter / setter


부모 클래스에서 private으로 접근 권한이 설정된 멤버변수의 값을 수정하거나 얻어올 때, 사용

getter 함수

멤버 변수의 값을 읽어오는 함수
다시 말해, get은 외부에서 꺼내는 메소드

public:
	int get() { return 멤버변수; }

public int get() 이라는 매소드를 만들고, return 멤버변수 를 통해 외부에 멤버변수를 반환

➡️ private 변수는 외부에서 접근할 수 없기 때문에 public int get() 를 만들어서 부모 클래스 내부의 private 변수를 외부에서 꺼내도록 해주는 메소드

setter 함수

멤버 변수의 값을 채워주는 함수
다시 말해, set은 내부에 넣어주는 메소드

public:
	void set(int 멤버변수) { this.멤버변수 = 멤버변수; }

public void set(int 멤버변수) 라는 메소드를 만들고, 멤버변수 를 받아서 클래스의 필드인 private int 멤버변수 = this.멤버변수 에다가 값을 넣음

➡️ private 변수에 외부에서 받은 값을 대입해주기 위해 public void set(int 멤버변수) 를 만들어 외부의 멤버변수를 부모 클래스 내부의 멤버변수에 set하도록 입력해주는 메소드

profile
👩‍💻 기록 및 복습을 위함

0개의 댓글