CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): yoojk (노니머해)
날 짜 (Date): 1994년02월15일(화) 18시44분40초 KST
제 목(Title): polymorphism 과 overloading



사실 말하자면 저도 잘은 모르지만

대충 말하자면 거의 같은 거에요.

둘 다 사용된 함수가 (혹은 overloading의 경우에는 특정 기호까지도)

문맥에 따라서 서로 다른 의미를 가질 수 있음을 뜻하고요.

다시 말하면 그 개념들이 C++에서 독창적으로 나온게 아니라

그 이전에 딴데서 많이 연구되었음을 뜻해요.


제 생각에는 overloading이 조금 더 포괄적인 의미 같군요.

예를 들면 A(1) 에서 괄호의 쓰임새는 (특히 FORTRAN의 경우에)

overloading 되었다고 말하는데

그 이유는 괄호의 뜻이 A라는 배열의 원소를 참조하기 위해 쓰였을 수도 있고,

또는 A라는 함수의 argument를 묶어주기 위해서 쓰였을 수도 있다는 거죠.


반면에 polymorphism은 함수나 연산자의 경우에만 한정되어 있는 거 같아요.

즉 1+2 의 plus 기호는 정수 연산을 뜻하지만

1.0 + 2.0 의 plus 기호는 실수 연산을 뜻하지요.

(plus의 경우는 정수연산과 실수연산의 차이가 눈에 잘 안띄겠지만

 나눗셈 연산의 경우, 정수 나눗셈에도 기냥 / 기호를 쓴다면, 

 차이를 확실히 느끼실 수 있습니다.)


지금까지는 일반적인 얘기들이었고

C++에서의 경우에, 같은 함수이름을 서로 다른 type의 인자들로 호출해서

각각 독특한 기능을 수행하도록 프로그램 한다면

굳이 overloading과 polymorphism의 차이를 구별할 수 없을 것 같군요.


도움이 되었길...

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.