• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

함수에 값을 대입한다는 개념이 이해가 되지 않습니다.

23.02.09 17:17 작성 조회수 304

0

안녕하세요.

우선 질문을 좀 많이 드려서 죄송합니다.

15분 6초를 보면 something.getValue()에 10을 대입하는내용이 나오는데요. const가 없는 instance에는 10이 대입이 되고 const가 있으면 안된다는 내용은 이해를 했습니다. 그런데 함수에 값을 대입한다는 개념 자체가 이해가 되지 않습니다. 여기서 something.getValue() 함수는 그냥 m_Value를 return하는 함수인데 이런 함수에 왜 숫자가 대입이 되는건지 이해가 되지 않으며 10을 대입시키면 그 10은 어디로 가는건지도 궁금합니다.

답변 1

답변을 작성해보세요.

0

함수는 메모리에 실행하는 코드로 저장이 되기 때문에 함수에게 값을 대입한다라고 생각하시면 이해가 안가는 것이 정상입니다. 조금 더 자세히 들여다보시면 착시현상이라는 것을 파악하실 수 있을 겁니다. (편의성을 올리기 위해서 사용하는 문법적 기교로 보실 수도 있습니다.)

auto& a = something.getValue();

a = 10;

cout << something.getValue() << endl; // 10으로 변경된 값이 출력되는지 확인

에서 a의 자료형을 확인해보시면 도움이 될 것 같습니다.

일단은 "함수가 반환해주는 레퍼런스 변수"에 대입을 해준다고 보실 수 있고

내부적으로는 결국 포인터로 생각하시는 것이 이해가 더 쉬우실 수도 있습니다.

Creed님의 프로필

Creed

질문자

2023.02.14

제가 뭘 잘못한건지 모르겠습니다만

설명해주신대로 코드를 쳤는데, 10으로 변경된 값이 출력이 되지 않네요...ㅠ

뭐가 잘못된 걸까요?

image

image

 

m_value가 문자열이였군요. 정수 10 대신에 문자열을 대입해보세요.

Creed님의 프로필

Creed

질문자

2023.02.15

정상적으로 출력되는 것을 확인했습니다!

답변해주셔서 감사드립니다!