본문 바로가기
Programming/C++

[ C++ ] 가상함수와 추상클래스

by 코뮤(commu) 2021. 5. 26.
728x90
반응형

 

 

 

가상 함수(virtual function)

 

virtual 키워드로 선언된 멤버 함수이다.

virtual 키워드의 의미는 아래와 같다.

- 동적 바인딩 지시어

- 컴파일러에게 함수에 대한 호출 바인딩을 실행 시간까지 미루도록 지시하는 역할을 한다.

 

 

함수 오버라이딩(function overriding)

 

파생 클래스에서 기본 클래스의 가상 함수와 동일한 이름의 함수 선언

 

- 기본 클래스의 가상함수의 존재감을 상실시킨다.

- 파생 클래스에서 오버라이딩한 함수가 호출되도록 동적 바인딩

- 함수 재정의라고도 부른다.

- 다형성의 한 종류이다.

 

 

오버로딩

 

: 같은 클래스 내에서 이름이 같은 것.

 

 

추상 클래스

 

추상 클래스를 얘기하기 전에, 순수 가상함수를 먼저 설명해보겠다.

 

 

순수 가상 함수

 

함수의 코드가 없고, 선언만 있는 가상 멤버 함수 이다.

 

 

추상클래스는 최소한 하나의 순수 가상 함수를 가진 클래스이다.

 

 

 

추상 클래스의 목적

 

추상 클래스의 인스턴스를 생성할 목적이 아니라,

상속에서 기본 클래스의 역할을 하기 위해 만들어졌다.

 

추상 클래스를 단순 상속하면 자동 추상 클래스이다.

 

추상 클래스를 상속받아 순수 가상 함수를 오버라이딩 해야한다.

 

파생클래스는 추상 클래스가 아니다.

 

 

 

728x90
반응형