-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
공변 반환값 관련 질문 있습니다
21.03.03 22:24 작성 조회수 177
6
8:10 에서 b의 포인터를 내부적으로 a 포인터로 바꿔서 print()를 호출한다고 하셨는데,
ref의 자료형은 A지만 A의 getThis() 는 virtual 이므로 B의 포인터가 반환되었고,
B의 print()를 호출하려 했지만 A의 print()가 virtual 이 아니라서 B 대신 A의 print()가 호출된 게 맞나요?
답변을 작성해보세요.
3
안소
2021.03.05
네! B 포인터를 리턴했더라도 이를 호출한 주체자가 A타입인 ref 이기 때문에 A의 print()가 호출됩니다. 근데 A의 print()는 가상함수가 아닌 일반 함수이므로 A의 print()가 호출됩니다.
답변 1