다중 상속에서 상속(앞에있는것)순으로 생성자 호출

 

C++에서는 super 사용이 불가능

->다중 상속이 가능하기 때문에 다중 상속한 경우 super가 가리키는 대상을 모른다

->부모의 이름으로 작성해야한다.

 

상속한 두 클래스에 같은 이름의 함수가 있을 시, 사용하려는 함수를 가진 부모 클래스를 특정해야함

myTa->Student::Display();

 

가상 베이스 클래스

b가 a를 상속하고 c가 a를 상속했는데 d가 b와 c를 상속한경우???

a는 2개가 존재->virtual키워드를 이용하여 해결...

(이렇게 해야할까?? ㄴㄴ)

 

다중상속은 최대한 사용하지말고 인터페이스를 사용하자

 

순수(pure) 가상함수

virtual void Speak() = 0; 처럼 구현이 안되어있는 멤버 함수(구현체가 없는 멤버 함수)

파생 클래스가 구현해야한다. -> 구현 안하면 컴파일 에러

 

추상(abstract) 클래스 - 순수 가상함수를 가지고 있는 베이스 클래스

ex) virtual void Speak() = 0;

0은 NULL이라고 보면 된다. (구현안한다는 뜻)

추상 크랠스는 개체 만들수 없음

포인터나 참조형으로 사용 가능

 

인터페이스(interface)의 변수이름의 처음은 I로 구분해주는것이 좋다.

C++자체에서는 인터페이스를 지원하지 않기에 순수 추상 클래스를 사용하여 인터페이스 흉내

1.순수 가상 함수만 가짐

2.멤버 변수는 없음 (필요에 의해 사용하는 경우는 있음)

walk, fly 등의 추상 클래스를 만들어 다중상속으로 해결하는 방식이다.

 

-섹션 9 개체지향 프로그래밍 3 완료

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

C++ 11일차  (0) 2021.06.23
C++ 10일차  (0) 2021.06.23
C++ 8일차  (0) 2021.06.17
C++ 7일차  (0) 2021.06.13
C++ 6일차  (0) 2021.06.12

+ Recent posts