AAA& func() { ..... }
AAA & ref = func() // 참조의 형태로 받음
AAA ref = func() // ref 객체 생성해서 받음
AAA func() { ..... }
AAA & ref = func() // func이 뱉는 임시객체를 참조의 형태로 받음
AAA ref = func() // func이 뱉는 임시객체를 참조의 형태로 받음
//ref가 새로 생성되면서 복사생성자 두번 호출될 것 같지만 그렇지 않음. 이유는 효율성
이건 AAA 객체일 때 이야기고
일반 자료형을 가지고 얘기해보면
int func() { ..... }
int ref = func() // ref 변수에 리턴값이 들어감
int & ref = func() // 컴파일 에러
결론 :
C++ 문법은 복잡하다. 사실 이런거까지 세세하게 알필요 까지는 없을 것 같지만
공부한 김에 정리차원에서 문서화 해둠
'C++ > 공개글' 카테고리의 다른 글
상속과 포함 관계에서의 객체 생성 순서 (0) | 2013.01.26 |
---|---|
가상함수는 언제 사용하는가 (0) | 2013.01.26 |
정의하지 않아도 자동으로 만들어지는 4가지 함수 (0) | 2013.01.25 |
상속 관계에서 함수 오버로딩을 할 때 주의할점 (0) | 2013.01.25 |
가상함수는 어디에 필요한가? 왜 필요한가? (0) | 2013.01.25 |