본문 바로가기
Development/C++

함수 오버라이딩(overriding)과 오버로딩(overloading)

by KingCat 2013. 12. 11.

<함수 오버로딩>

- C에서는 함수호출시 함수의 이름을 기준으로 호출을 하여 동일한 함수 선언이 불가능 하지만, C++에서는 함수호출시 함수 이름과 매개변수 선언 정보를 기준으로 호출하므로 동일한 이름의 전달 인자가 다른 함수를 만들 수 있다. 이를 함수 오버로딩이라 한다.

 

<함수 오버라이딩>

- 상속관계에 있는 클래스간에 상위 클래스가 정의한 함수와 동일한 이름, 동일한 매개변수 선언을 가진 함수를 하위 클래스에서 재정의 하는 것을 함수 오버라이딩이라 한다.

- 오버라이딩을 위해서는 함수에 virtual 키워드를 붙여서 가상 함수로 만들어야한다.

 

 

- 만일 상속관계에 있는 클래스 사이에서 상위 클래스에 동일한 함수가 있을때, 하위 클래스에서 매개 변수 선언이 틀린 함수를 재정의하면, 재정의가 되지 않고, 오버로딩이 되어 다른 함수로 인정된다.

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

메모리 단편화  (0) 2014.09.22
가상함수 테이블의 메모리 구조  (0) 2013.12.11
virtual  (0) 2013.12.11
[STL] vector에서 size(), reserve() 함수의 역할  (0) 2013.12.11
복사생성자와 복사 대입 연산자  (0) 2013.12.11