일급 객체 (First-class object)
일급 객체(First-class object)란, 프로그래밍 언어에서 특정 개체가 다른 개체와 동일하게 취급될 수 있는 속성을 의미합니다.
일급 객체는 다음과 같은 속성을 가집니다.
- 변수에 할당될 수 있습니다.
- 함수의 인자로 전달될 수 있습니다.
- 함수의 반환값으로 사용될 수 있습니다.
일급 객체의 개념은 주로 함수형 프로그래밍에서 강조되지만, 객체 지향 프로그래밍과 같은 다른 패러다임에서도 중요하게 사용됩니다.
예를 들어, C++의 함수 포인터와 콜백 함수는 일급 객체의 좋은 예입니다. 특정 함수의 주소를 저장하고, 함수의 인자로 전달될 수 있으며, 반환 할수도 있는 함수 포인터는 일급 객체입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
int Add(int a, int b)
{
return a + b;
}
int Multiply(int a, int b)
{
return a * b;
}
// 함수 포인터를 반환하는 함수
int (*GetOperation(char op))(int, int)
{
if (op == '+')
{
return Add;
}
else if (op == '*')
{
return Multiply;
}
return nullptr;
}
int main()
{
int(*operation)(int, int) = GetOperation('+');
if (operation != nullptr)
{
std::cout << "결과: " << operation(5, 3) << std::endl; // Add 함수 호출
}
operation = GetOperation('*');
if (operation != nullptr)
{
std::cout << "결과: " << operation(5, 3) << std::endl; // Multiply 함수 호출
}
}
이 기사는 저작권자의 CC BY-NC-ND 4.0 라이센스를 따릅니다.