C++

10주차 스터디

kchabin 2022. 11. 24. 15:23

protected 접근 지정

- private 멤버

선언된 클래스 내에서만 접근 가능

파생 클래스에서도 기본 클래스의 private 멤버 직접 접근 불가

- public 멤버

선언된 클래스나 외부 어떤 클래스, 모든 외부 함수에 접근 허용

파생 클래스에서 기본 클래스의 public 멤버 접근 가능

- protected 멤버

선언된 클래스에서 접근 가능

파생 클래스에서만 접근 허용

  - 파생 클래스가 아닌 다른 클래스나 외부 함수에서는 protected 멤버를 접근할 수 없다. 

protected 에는 파생 클래스만 접근이 허용됨.

 

생성자 호출 관계 및 실행 순서

A의 파생인 B의 파생 C 클래스 

제일 아래 클래스부터 윗 클래스까지 순서대로 호출되고, 그 반대로 실행 및 리턴

실행은 A부터니까 생성자 A -> 생성자 B -> 생성자 C 순서로 출력되고, 소멸자는 그 반대로 실행된다.

 

컴파일러에 의해 묵시적으로 기본 클래스의 생성자를 선택하는 경우

- 파생 클래스의 생성자에서 기본 클래스의 기본 생성자 호출

매개 변수를 가진 파생 클래스의 생성자는 묵시적으로 기본 클래스의 기본 생성자 선택

- 파생 클래스의 매개 변수를 가진 생성자가 기본 클래스의 기본 생성자 호출

파생 클래스의 생성자에서 명시적으로 기본 클래스의 생성자 선택

상속 관계의 생성자 매개 변수 처리 예

main 함수에서 파생 클래스 C의 매개변수가 있는 생성자가 실행되면서 m = 3*5*2 = 30이 되고,

:B(x,y)를 실행시켜서 B(3,5)가 되고, y = 5가 된다. 

그리고 A(x+5)를 실행하면서 A(8)이 호출되어서 x = 8이 된다. 

 

x = 8, y = 5, m = 30

TV, Wide TV, SmartTV 생성자 매개 변수 전달

상속 순서 

TV > WideTV > SmartTV 

가장 아래 자식 클래스의 생성자가 호출되면서 그  위의 부모 클래스의 생성자가 호출되고, 가장 위의 부모 클래스의 생성자부터 실행된다. 

'C++' 카테고리의 다른 글

12주차 스터디  (0) 2022.12.11
11주차 스터디  (0) 2022.12.04
9주차 스터디  (0) 2022.11.19
8주차 스터디  (0) 2022.11.13
껄껄껄 7주차 스터디  (0) 2022.11.05