2017-01-02 1 views
-1

최근 C++ 학습을 시작하여이 문제를 발견했습니다. 이 바보 같은 소리지만 왜 우리가참조 용 초기화 C++

int r= 20; 
int &ref = r; 
ref(20); 

를 통해 참조 변수에 값을 초기화 할 수없는 경우 실례 하지만 참조 변수로 사용하지 않을 경우 20 일의 값을 초기화하는이 방법.

IDE : C++ 11

왜 이렇게할까요?

+0

예제에서 2 행으로 초기화되었습니다. 3 행에서는'ref = 20'으로 새 값을 지정할 수 있습니다. – wally

+0

왜 int & ref (20)를 할 수 없는지 물어 보셨습니까? – wally

+0

@Muscampester'ref = 20'을 사용할 수는 있지만'ref (20)'을 사용할 수없는 이유는 알지 못합니다. – DatDankMeme

답변

2

이 값을 20으로 초기화하는 방법은 참조 변수로 사용하지 않을 때 작동합니다.

어떤 의미로 작동합니까? 이제 컴파일러 ref(20);은 함수 호출처럼 보입니다. int &refint ref으로 변경하면 여전히 같은 오류가 발생합니다.

나는 int r(20);이 작동한다는 것을 의미한다고 생각합니다. 참조의 경우에는 먼저 참조하는 변수에 바인딩해야합니다. 이렇게하면 변수에 바인딩 할 수 없으며 같은 값으로 할당 할 수 있습니다.

+0

고마워, 내가 뭘 잘못하고 있었는지 이해했다. 'r (20)'을 초기화 할 때 컴파일러는 값을 함수에 전달한다고 생각했습니다. – DatDankMeme