CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): arche (기마토끼)
날 짜 (Date): 1994년02월14일(월) 05시02분51초 KST
제 목(Title): polymorphism


음냐. 저도 초보인디.
수업 시간에 울 선생님은 자나깨나 'polymorphism'을 강조하셔설랑
저는 그게 무지무지 중요한 걸로 알았걸랑요.
이해는 잘 못하고 중요하게만 여기고 있어요.

제가 들은 폴리모피즘은 virtual function과만 (주로?) 관계가 있읍니다.

zeo님 글 중의 정의에 나오는 'same interface'라는 말이 중요한 것이지요.

base class에서 virtual 아무개... 하고 선언해 놓으면 

derived class가 d1, d2, ...여러 개 있다고 할 때

base class name을 b라고 하면

  b *a[10];

  a[0] = new d1(...);
  ...
  a[9] = new d9(...);

  for (int i=0; i< 10; i++) a[i]->아무개(...);

라는 코드가 무리없이 돌아간다. 즉 d1...d9가 다 다른 타입이지만 base가 

같으므로 각각 자기가 가지고 있는 아무개를 실행시킨단 말입니다.

해당 class에 아무개가 없으면 b::아무개가 실행되고요.

이렇게 해 놓으면 나중에 derived class들이 어떻게 바뀌건 main code에는

별로 영향이 없어서 information hiding, 즉 object-oriented programming이

가능해 지는 거지요.

virtual function이 선언되지 않으면 compile error가 나게 됩니다.

SMALLTALK에서는 virtual function이 default로 되어 있다는군요.

음.. 이것보단 기능들이 많을텐데 이거밖에 몰라요.

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