객체 치환
객체 치환 시 객체의 모든 데이터가 비트 단위로 복사된다.
Circle c1(5);
Circle c2(30);
c1=c2; //c2 객체를 c1 객체에 비트 단위로 복사한다. c1의 반지름이 30이 된다.
--c1과 c2는 내용물만 같을 뿐, 별개이다. 객체 치환은 동일한 클래스 타입에 대해서만 적용된다.--
함수의 객체 리턴
Circle getCircle(){
Circle tmp(30);
return tmp; //객체 tmp 리턴
}
return 문이 실행되면 tmp의 복사본이 생기고 이 복사본이 getCircle()을 호출한 곳으로 전달. 그 후 tmp는 소멸.
아래는 getCircle() 함수로부터 리턴 되는 객체를 받는 코드이다.
Circle c; // c의 반지름은 1
c=getCircle(); // tmp 객체의 복사본이 c에 치환된다. c의 반지름이 30이 된다.
객체 리턴 코드
#include <iostream>
using namespace std;
class Circle{
int radius;
public:
Circle(){ radius=1;}
Circle(int radius){this->radius=radius;}
void setRadius(int radius){this->radius=radius;}
double getArea(){return 3.14*radius*radius;}
};
Circle getCircle(){
Circle tmp(30);
return tmp; // 객체 tmp를 리턴한다.
}
int main(){
Circle c; //객체가 생성된다. radius=1로 초기화된다.
cout << c.getArea()<<endl;
c=getCircle();
cout << c.getArea() << endl;
}
'Programming Language > C++' 카테고리의 다른 글
| 함수 호출 시 객체 전달 (0) | 2023.04.08 |
|---|---|
| 함수의 인자 전달 방식 (1) | 2023.04.07 |
| 문자열 다루기 (0) | 2023.04.07 |
| string 클래스 개요 (0) | 2023.04.07 |
| this의 기본 개념 (0) | 2023.04.07 |