• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

Fraction doSomething() 과 Fraction & doSomething 차이

20.09.19 23:18 작성 조회수 175

1

안녕하세요? 교수님 디버깅 하는중에 doSomething() 함수 호출 과정에서 의문이 생겨서 질문 드립니다.

1.  Fraction  doSomething() 

이 함수에서 호출 했을 때, copy constructor을 호출 하는 시점이 return temp 에서 발생했습니다. 

2.  Fraction &  doSomething()

이 (& 반환)함수에서   copy constructor 호출이 

Fraction result = doSomething()에서 반환 했습니다.

 

두 함수다 두 번째 사진 처럼 copy constructor가 발생 되어야 한다고 생각했습니다.

첫 번째 사진에서 return temp시점에서 copy constructor을 호출하는 이유가 이해되지 않아서 질문드립니다.  

답변 2

·

답변을 작성해보세요.

2

ksi0911님의 프로필

ksi0911

질문자

2020.09.21

먼저 답변 주셔서 감사드립니다.

그렇게 생각한 이유는 (첫번째 사진) doSomething() 함수에서 Fraction temp 객체를 바로 넘겨준다고 생각했습니다. (단순히 값을 보내준다고 생각). 

임시적으로 객체를 생성해서 보내주는 군요. 답변주셔서 이해가 됬습니다. 감사합니다. 

1

Hello Yeo님의 프로필

Hello Yeo

2020.09.20

안녕하세요? 왜 그렇게 생각하시는지 알 것 같기도 하면서 이유가 궁금하네요.
일단 답변을 드리면 첫번째 경우와 같이 값을 return 하는 경우는 객체를 하나 만들어서 보내주어야하기 때문입니다.