대학교때, 시험문제에 "오버로드와 오버라이드의 차이점을 기술하라"는 문제가 나왔던것이 아직도 기억난다.
한줄의 답도 적지 못했던 기억도...
워낙 공부를 등한시한 터라, 오버로드라고는 스타크래프트의 저그 밥통(?) 외에는 떠오르는게 없었다.
경력 6년 차인 지금이라면 답을 적을 수 있을까?
음.. 확신이 안선다.
두가지가 의미하는 정의는 알고 있지만, 단어와 정의가 항상 매치가 안된다.
해서. 이 글을 쓰며 머리속에 각인시키려 한다.
· 오버로드(Overload)
함수(메소드) 이름은 같고 인자 갯수나 타입이 다른 함수를 정의하는 것을 의미한다.
(리턴값만을 달리하는 오버로드는 작성 할 수 없다)
int OverloadFuncAdd( int x, int y ); |
는 OverloadFuncAdd() 함수가 오버로드된 것이다
· 오버라이드(Override)
상위 클래스의 매소드를 재정의 하는 것이다.
메소드 이름은 물론 인자 갯수나 타입도 동일해야 하며, 주로 상위 클래스의 동작을 상속받은 하위클래스에서 메소드의 동작을 변경하기 위해 사용된다.
class BaseClass |
와 같은 형태로 사용된다
명확하게 기억하자.
'C++' 카테고리의 다른 글
std::vector (0) | 2009.08.26 |
---|---|
strcpy_s등의 _s 류의 문자열 처리함수 (4) | 2009.04.01 |
Warning C4748: /GS can not protect parameters and local variables from local buffer overrun because optimizations are disabled in function (0) | 2009.01.21 |
Name Mangling(Name Decoration) (0) | 2008.10.07 |
메모리 에러 (0) | 2008.03.25 |