CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): FeelGood ( 해피데이)
날 짜 (Date): 1996년08월08일(목) 10시57분28초 KDT
제 목(Title): [Re] Bjarne Stroustrup의 C++책에서..


코드 중에서 함수 h(link*&)가 하는 일은

인자로 받은 링크를 기존의 linked list의 제일 처음 노드로 붙이고

first가 그 노드를 가리키도록 한 다음에 

link* q를 0으로 초기화 하는 겁니다.

이 때 만일 h(link* p)로 선언되었다면 어떻게 될까요?

먼저 h(q) 호출의 결과로 link*인 q값이 그대로 p에 복사를 하는 거죠.

다시 말해서 q와 p가 같은 link 노드를 가리키게 되겠죠.

그 결과로 복사에 따른 overhead가 있고

h(link* p)의 구현 중 p=0이라는 것도 실제 q에는 아무런 영향을 미치지 않으니까

h(q)의 수행 후에도 q는 여전히 link 노드(h(q)의 결과로 첫번째 노드가 됨)를

가리키게 되겠죠.

결론적으로 reference(&)라는 것은 일종의 alias라고 생각하시면 됩니다.

 ************************************************************************
  Have U ever Tried to   || e-mail: yjsong@papaya.snu.ac.kr
 Feel Good & Happy Days? || pager: 012-813-6568, phone: 02-880-1830
     Just Do It !        || http://wwwoopsla.snu.ac.kr/researchers/yjsong
 ************************************************************************
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.