SimpleClass obj2 = obj1;
void Method1(SimpleClass obj);
<- 함수호출 시 복사 생성자 호출
SimpleClass Method2(void) { SimpleClass ob; return ob;}
<-리턴시 복사생성자 호출
앞에서 계속 해본거
매개변수를 값으로 받을 경우(포인터 말고) 객체를 복사해서 함수에서 사용한다.
따라서 복사 생성자 호출
만약 객체를 반환하는 함수 Method1이 있다하면
SimpleClass obj1 = Method1();
여기서 대입연산자 '=' 오른쪽에서는 SimpleClass를 저장할 수 있는 임시변수를 선언하고 거기에 리턴값을 복사해준다.
그 다음 임시변수에 있는 객체를 obj1에 복사해주고 임시변수의 메모리를 소멸된다.
기본 참조자는 상수 참조가 불가능하다.
임시변수가 생성된다는 점 때문에 const 참조자로 참조도 가능하다.
const SimpleClass &ref1 = Method1();
or
const SimpleClass &ref2 = SimpleClass();