728x90
반응형
객체 치환 및 객체 리턴
1. 객체 치환
객체 치환 시 객체의 모든 데이터가 비트 단위로 복사된다. 다음 예를 보자.
i.e.
Circle c1(5); //반지름 값 = 5
Circle c2(30); //반지름 값 = 30
c1 = c2; //c2 객체를 c1 객체에 비트 단위로 복사한다. c1의 반지름이 30이 된다.
객체 치환 후 c1과 c2의 내용이 완전히 같다. 그러나 c1, c2가 하나의 객체가 되는 것은 아니다. c1과 c2는 별개이며 내용물만 같을 뿐이다. 객체 치환(assignment)은 동일한 클래스 타입에 대해서만 적용된다.
2. 함수의 객체 리턴
C++에서 함수가 객체를 리턴하는 경우를 보자. 다음은 Circle 클래스의 객체를 리턴하는 getCircle() 함수이다.
i.e.
Circle getCircle() {
Circle temp(30);
return temp; //객체 temp 리턴
}
return 문이 실행되면 temp의 복사본이 생기고 이 복사본이 getCircle()을 호출한 곳으로 전달된다. 그러고 나서 temp는 소멸된다.
반응형
'C++ > C++ 기본' 카테고리의 다른 글
복사 생성자 (0) | 2018.07.27 |
---|---|
참조와 함수 (0) | 2018.07.27 |
함수 호출 시 객체 전달 (0) | 2018.07.26 |
cin.getline()과 getline()의 차이점 (0) | 2018.07.24 |
this 포인터 (0) | 2018.07.17 |