본문 바로가기

C++ 기초 1

[C++] 2-10 클래스 객체 반환 (return)

객체 반환

   함수를 홈추할 때 함수에서 객체(object)를 전달할 수 있듯이 역으로 객체를 함수의 호출 측에 반환할 수 있다. 이때 함수의 데이터형은 해당 클래스형으로 지정해야 하며, return문을 사용하여 그 형의 객체를 호출측에 반환한다. 

 

 
예제
#include <iostream>
using namespace std;
class myclass {
private:
	int a, b;
public:
	void set(int i, int j) {
		a = i; b = j;
	}
	int sum_return() {
		return a + b;
	}
};

myclass input();		//일반 함수 input()의 원형 선언

int main()
{
	myclass ob;
	ob = input();		//일반 함수 input()의 호출 // 반환된 객체를 ob에 대입
	cout << "ob.sum_return(): " << ob.sum_return() << endl;
	return 0;
}

myclass input()			//일반 함수 input()의 정의
{
	int x, y;
	myclass temp;
	cout << "x? y?";
	cin >> x >> y;
	temp.set(x, y);
	return temp;		//myclass형의 객체를 반환
}
x? y?10 30
ob.sum_return(): 40
※ main() 함수에서 myclass형 객체 ob가 생성되고 input() 함수를 호출한다. 
※ 정의된 input() 함수에서 myclass형 객체 temp를 생성하고 키보드로부터 x와 y의 값을 읽어들인다. input() 함수의 데이터형은 반환되는 객체 temp의 클래스형인 myclass로 지정해야 한다. 
 
참고

1. 장인성 외 5인, (초보자도 쉽게 따라 할 수 있는) C++프로그래밍, 광문각, 2017.02.13