아직 정확히 이해하지 못했다. 추가 예정
바인딩
1. 정적 바인딩 : 컴파일 시점에 결정된다.
2. 동적 바인딩 : 실행 시점에 결정된다. 면접 단골 질문
일반 함수는 정적 바인딩에 해당하고, 가상 함수는 동적 바인딩에 해당한다.
가상 함수
게임 업계에서 중요한 개념이다..!
virtual void VMove() { cout << "VMove" << endl; }
실제 객체가 어떤 타입인지 알고 있어서 가상 함수를 알아서 호출한다..?
이는 가상 함수 테이블(vftable)에 주소를 저장하기 때문이다.
주소를 저장하므로 32bit에서는 4 byte 크기, 64bit에서는 8 byte 크기를 가지고 있다.
각 객체의 생성자가 실행될 때, 자동으로 vftable에 각 객체를 식별하는 정보를 저장한다.
순수 가상 함수
구현은 없고 '인터페이스'만 전달하는 용도로 사용하고 싶을 때 사용한다.
virtual void AMove() = 0;
이러한 순수 가상 함수가 클래스 내부에 존재하면, 추상 클래스로 간주한다.
추상 클래스는 직접적으로 객체를 만들 수 없다.
출처
https://www.inflearn.com/course/%EC%96%B8%EB%A6%AC%EC%96%BC-3d-mmorpg-1/dashboard
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의
시리즈를 원활하게 학습하기 위한 기초적인 C++ 문법들에 대해 학습합니다. 어셈블리 언어부터 시작해서 기본 C++ 문법, STL, C++11까지 핵심적인 내용을 압축해서 다루게 됩니다., - 강의 소개 | 인
www.inflearn.com
'프로그래머 > CPP_강의정리' 카테고리의 다른 글
cpp 객체지향(7-연산자 오버로딩) (0) | 2021.09.20 |
---|---|
cpp 객체지향(6-초기화 리스트) (0) | 2021.09.20 |
cpp 객체지향(4-은닉성) (0) | 2021.09.19 |
cpp 객체지향(3-상속성) (0) | 2021.09.19 |
cpp 객체지향(2-생성자와 소멸자) (0) | 2021.09.16 |