2011-09-12 3 views
4

일반적으로 함수 매개 변수에서 참조를 사용하고 유형을 반환하여 매력적인 인터페이스를 정의합니다. 포인터를 사용하여 알고리즘 및 데이터 구조를 구현하십시오.알고리즘 및 데이터 구조에서 참조를 사용할 수없는 이유는 무엇입니까?

기사에서이 행을 읽었습니다. 알고리즘과 데이터 구조에서 참조를 사용할 수없는 이유는 무엇입니까?

도와주세요 왜 undestand 도와주세요.

+0

이 태그를 C 대신 C++로 지정하면 안됩니까? – stijn

+0

감사합니다 stijn.I 그것을 바 꾸었습니다 – Angus

+1

다른 사람들이 주변 상황을 읽을 수 있도록 인용문을 인용 해주십시오. –

답변

7

특정 개체를 참조하도록 초기화 한 후에 다른 개체를 참조 할 수 없기 때문에 참조하십시오.

증명 된 바와 같이, 표준의 §8.5.3.2는 참조 초기화 후에 다른 오브젝트를 참조하도록 변경 될 수 없다

말한다. 참조 초기화는 과 매우 다르게 처리됩니다. 인수 전달 (5.2.2) 및 함수 값 복귀 (6.6.3)는 초기화입니다.

데이터 구조와 알고리즘은 일반적으로 개체 자체의 추가, 제거 및 순서 변경과 관련이 있습니다. 참조로는 이것을 할 수 없으므로 포인터를 사용하여 저렴하게 수행 할 수 있습니다.

+0

-1 다음과 같이 할 수 있습니다. int a, b; int & c = a; c = b; – stijn

+6

@stign은 같지 않습니다. 그 라인에서'a'의 값을 변경했을 때'c'가'b'를 참조하지 않았습니다. 'c'에 대한 더 많은 할당은'b' 값이 아닌'a' 값을 더 변경할 것입니다. –

+7

@stijn : 잘못된 것이지만 코드 조각은 참조를 수정하지 않고 참조 된 개체를 수정합니다. 그 후,'a'는'b'와 같은 값을 갖지만 (초기화되면)'& c'는'& b'와 같은 값이 아닌'& a'와 같은 값을 갖습니다. –

관련 문제