inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문

추상화와 클래스

string& 질문

444

luke1260

작성한 질문수 2

0

추상화와 클래스 수업을 들으면서 강의에 나온 예제를 따라서 코딩했는데, acquire함수의 문자열 파라미터를 영상처럼 string&으로 하니까 컴파일할때 에러가 나오고 &을 빼고 string만 하니까 에러 없이 잘 컴파일이 잘 됩니다. 영상 하단 코드에도 참조연산자 없이 string만 있는데 이런 차이가 생기는 이유는 무엇인가요? 그리고 판다코딩님의 경우엔 왜 에러없이 잘 돌아간건가요?

c++

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

string&은 참조자를 사용하는 것인데, 참조자를 사용하는 이유는 함수 내에서 인자로 받은 값을 즉시 변경하고자 할 때 사용합니다.
그러나, 참조자를 사용할 때는 참조 대상이 되는 변수가 함수 호출 시 변하지 않도록 주의하여야 합니다.

따라서 acquire 함수에서 문자열 파라미터를 string&으로 받게 된다면, 전달받은 문자열을 변경하고자 할 때 문자열 객체를 변경하는 것이 아닌, 참조한 변수 값 자체를 변경하게 됩니다.
따라서 string&으로 받게 된다면, 컴파일 에러가 발생할 수 있습니다.

판다코딩님의 경우에는 코드가 언급되지 않았기 때문에 정확한 답변을 드리기는 어렵습니다. 하지만, 영상에서 제시한 파라미터와 함수 내용이 동일하다면, 참조자를 사용하는 것과 불필요하게 복잡한 방식으로 코드를 작성하는 것 사이에서 선택하셨을 수도 있습니다.

이상입니다. 추가적으로 문제가 있으시다면 언제든지 문의해주세요. 감사합니다.

switch 구문과 break continue 구문 강의 질문드립니다

0

60

1

opreator*

0

79

1

cin은 c언어에서의 scanf와 동일하다고 봐도 될까요?

0

140

0

질문이 있습니다.

0

109

1

temp1 선언

0

91

1

const MyStruct& 사용

0

114

0

인트형 포인터의 사이즈가 8이 나옵니다.

0

219

1

MyStruct* temp = new MyStruct; 에서 temp도 delete를 해야하나요?

0

129

1

#include <iostream> 중복

0

155

1

int sum=sumArr(arr. SIZE) 문의

0

137

1

4:04질문입니다.

0

112

1

4:39 질문입니다.

0

130

1

질문있습니다.

0

105

1

질문있습니다.

0

108

1

9:11 b에는 a이 주소값이 들어갔다고 하는데 *b의 값이 왜 a랑 같은 값이 나오나요?

0

163

1

빌드 실패 오류 질문 드립니다!

0

397

1

추상화와 클래스중 질문

0

177

1

질문사항 있습니다..동작을 안하고 있어요..

0

340

2

질문 드립니다

0

189

1

함수와 구조체 강의 음성이 이상합니다.

0

200

1

분할 컴파일 과정에서의 오류 발생

0

607

2

<<, >> 비트 연산자에 대한 설명이 맞나요?

0

453

2

포인터 연산

0

390

2

비주얼 스튜디오 코드를 사용해도 되나요?

0

805

1