객체 반환
함수를 홈추할 때 함수에서 객체(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
'C++ 기초 1' 카테고리의 다른 글
[C++] 3-2 클래스 생성자와 포인터 (0) | 2023.12.11 |
---|---|
[C++] 3-1 클래스 생성자(Constructor) (2) | 2023.12.07 |
[C++] 2-9 함수의 객체 전달 (value 및 포인터) (1) | 2023.12.05 |
[C++] 2-8 클래스 객체의 대입 (2) | 2023.12.04 |
[C++] 2-6 this 포인터 사용 이유 및 예제 (3) | 2023.11.30 |