객체를 반환하는 함수
프로그래밍/C++ 2013. 10. 17. 17:43 |객체를 반환하는 함수에서 무슨 일이 일어나는가 ?
$ gcc --version gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
객체를 선언한 후, 다음에 = 을 통해 값을 받으면,
출력 결과는 다음과 같다.
default constructor
default constructor
operator=
destructor
destructor
대략 2 라인에서 기본 생성자로 객체 생성
3라인의 getAAA() 내부에서 기본 생성자로 객체 생성 (임시 객체 생성)
3라인의 = 에서 대입연산자 호출
그리고 즉시 임시 객체 소멸
4라인에서 a 소멸
다음과 같이 이 두 줄의 코드를 한 줄로 변경하면,
default constructor
destructor
레퍼런스 타입으로 함수를 호출하면 역시 동일하다.
default constructor
0 0
destructor
call by value 로 부르면,
default constructor
0 0
destructor