문제
참조가 있는 변수 선언에 대해 혼란스럽습니다.일부 페이지를 읽었는데 그로 인해 더 혼란스러워서 여기에 질문하는 것이 더 좋았습니다.
저는 C++ 인터뷰에서 4가지 질문을 받았습니다.그 중 어느 것이 잘못되었으며 그 이유는 무엇입니까?
(1) int & n;
(2) const int & n=15;
(3) float x; const int & n =x;
어떤 사람이 잘못된 것과 그 이유를 설명해 주시겠습니까?
해결책
tl;dr 참조는 선언 시 초기화되어야 합니다(직접 또는 클래스 초기화에서).
int& n;
이것은 참조를 남깁니다. n
초기화되지 않았습니다.참조는 선언 시 초기화되어야 합니다.
const int& n = 15;
여기에는 아무런 문제가 없습니다.에 대한 참조 const int
으로 초기화됩니다 15
.
float x; const int& n = x;
그만큼 float
괜찮습니다. 하지만 초기화되지 않은 상태로 두는 것은 나쁜 생각입니다.참조 n
초기화 중 x
(부동/적분 변환 적용), 그것도 좋은 생각이 아닙니다.
다른 팁
참조가 항상 초기화되어야합니다.
제휴하지 않습니다 StackOverflow