인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

다형성 #2

다형성과 virtual 키워드

작성

·

534

·

수정됨

0

수업 너무 잘 듣고 있습니다. 3가지 질문을 하고 싶습니다.

다형성 수업을 듣기 전, 자바를 통해서만 객체 지향 공부를 했었기 때문에 상속 클래스가 부모 클래스의 함수를 재정의 하면 다형성으로 인해 자식 클래스의 멤버 함수가 실행 되는줄 알고 있었으나,

c++ 에서는 다형성을 위해 virtual 함수로 만들어줘야 한다는 것을 알게 되었습니다.

Q1. 다형성을 위해 기본 클래스를 상속받은 자식 클래스들이 각자 마다 다른 함수를 실행하길 원할때마다

virtual 키워드를 기본 클래스에서 모든 멤버 함수마다 달아주는 것이 일반적인가요?

클래스 설계하실때 상속받을 클래스가 있어서 기본 클래스에 거의 모든 함수가 virtual을 달고 있는 것인지 궁금합니다.

 

Q2. 상속성에서 생성자 / 소멸자 실행 순서를 말씀해주셨는데,

부모 클래스 생성자() -> 자식 클래스 생성자()

-> 자식 클래스 소멸자() -> 부모 클래스 소멸자()

생성자의 호출 순서는 어떤 순서인지 궁금합니다.

  1. 자식 클래스 생성자가 호출 되기전 , 선처리로 컴파일러가 부모 클래스 생성자를 먼저 호출한다. (자식 클래스 생성자가 나중에 호출된다.) 호출 순서 또한 부모 -> 자식

  2. 자식 클래스 생성자가 내부에서 부모 클래스 생성자를 먼저 호출한다. (자식 클래스가 생성자가 먼저 호출된다,) 호출 순서는 반대 자식 -> 부모

Q3. 접근 지정자 private : 을 통한 멤버 함수들은 상속을 못 받는 것이 맞는 것으로 보이는데

다형성을 위해 재정의 할 함수들은 기본 클래스에서 모두 public : 선언을 해줘야 하는 것이 맞습니까? virtual 키워드가 달리는 함수들의 접근 지정자가 public : 이어야 하는것인지 궁금합니다.

 

답변 1

0

Q1 음 바인딩개념 오버라이딩 개념 가상함수개념을 이해를 못하신 것 같네요

Q2 이건 직접 코드를 쳐보고 출력해보면 금방 알 수 있어요

Q3이건 말을 잘 이해를 못했네요

답변이없길래 적어봄 ㅇㅅㅇ

 

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기