달력

10

« 2018/10 »

  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  

'항목1'에 해당되는 글 1

  1. 2011.04.22 항목1. 포인터와 참조자를 구분하자. (2)




포인터와 참조자의 기본 개념부터 파악해 보자.
여러 좋은 예, 상황에 비유 할 수도 있지만 가장 큰 차이점과, 비슷한 점을 생각해 보았을 때
주소를 통해 접근, 같은 이름공간을 사용한 접근. 이라고 생각한다.

포인터든, 참조자든 사용하는 이유는 말 그대로 다른곳에 저장되어 있는 정보를 접근하여, 변경. 사용하기 위해서라고 생각하는데, 접근 하는 방식이 다르다고 보면 될 것 같다.

1. 참조자는 Null 의 개념이 존재 하지 않는다.
 즉, 생성과 동시에 이미 값이 존재하여야 한다는 것이다.


2. 상황에 따른 적절함이 필요 하다.
 



이것이 바로 함정이다. string& rs; 를 먼저 보고 생각한다고 하면, rs가 참조하는것을 s1에서 s2로 변형한것 같지만, 사실은 그렇지 않다. s2의 값을 s1에 대입해 버린것이다.

rs, s1, s2를 출력하면 모두다 같은 결과(Test2)가 나올것이다. 잘못됐다는 것이 아니라, 애초에 참조자를 쓴다는것 자체가 같은 이름 공간으로 취급하는 것이기 때문에,
s1 = s2; 를 의도한 것이라면 재대로 한것이 맞지만, 단순히 참조하는 대상을 바꾸기 위해서 사용 하였다면 크게 실수했다는 것이다.

마지막으로, 포인터를 썻을 때 어색해지는 구문일때 참조자를 사용하라고 되어 있지만.
이 부분에 대해서는 지금 구지 집고 넘어갈 필요는 없을 것 같다.
Posted by 안식의후크