• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

교수님 질문있습니다.

19.11.23 03:08 작성 조회수 145

1

안녕하세요 강의 15:16 부분에서

Something something;

somthing.getValue() = 10;

이라고 쓴 코드가 있는데,

Something something;

string someVal = something.getValue();

//혹은 string& someVal = something.getValue();

someVal = 10;

이런식으로 getValue()의 리턴값을 다른곳에 담아서 바꾸어 주는 것은 이해가되는데, 바로 getValue()로 리턴을 받자마자 10을 넣어주는 것이 잘 이해가안됩니다.

getValue의 리턴값을 아무곳에도 집어넣어주지않았는데 어떻게 10을 대입해주는것인가요?

답변 4

·

답변을 작성해보세요.

0

sualyer010님의 프로필

sualyer010

질문자

2019.11.24

감사합니다 열심히 수강하겠습니다!

0

반환값은 이미 함수가 반환하기 위해서 메모리에 담아놨기 때문에 추가로 어디에 넣는 작업을 하지 않아도 바로 사용할 수 있습니다. 다른 언어들도 유사한 기능이 다 있는 것으로 기억합니다. 뒤에 functor도 재밌어요.

0

sualyer010님의 프로필

sualyer010

질문자

2019.11.23

int a = 3;
int &b = a;

위와 같은 경우 a라는 변수에 reference를 달아줄경우 a변수에 할당된 메모리공간에 b라는 참조자를 달아주는 것으로 알고 있는데, getValue()를 했을 경우에 참조자를 리턴하면, 그걸 또 다른곳에 담아줘야 사용할 수 있는 것 아닌가요?

바로 10대입해주면 들어갈 메모리 공간이없지 않나요?

something.getValue() = 10을 한것이 c++에서 자동으로 

string someVal = something.getValue();

//혹은 string& someVal = something.getValue();

someVal = 10;

으로 해준다면 모를까, 저대로면 다른 언어에서는 불가능한 작업아닌가요?

0

밑에 reference를 다 이해하셨다고 하셨는데, 이것도 왜 가능한지 스스로 추측해서 다시 질문하세요. 중요한 길목에 서계신 것 같습니다. 이거 꼭 해결하고 가셨으면 좋겠네요.