1. 콜백 함수
코드를 다른 코드의 인수로서 넘겨 줌.
ex) 아이템을 여러가지 조건으로 찾기
class Item
{
public:
public:
int _itemId = 0;
int _rarity = 0;
int _ownerId = 0;
};
class FindByOwnerId
{
public:
bool operator()(const Item* item)
{
return (item->_ownerId == _ownerId);
}
public:
int _ownerId;
};
class FindByRarity
{
public:
bool operator()(const Item* item)
{
return (item->_rarity >= _rarity);
}
public:
int _rarity;
};
template<typename T>
Item* FindItem(Item items[], int itemCount, T selector)
{
for (int i =0; i < itemCount; i++)
{
Item* item = &items[i];
if (selector(item))
return item;
}
return nullptr;
}
int main()
{
Item items[10];
FindByOwnerId functor1;
functor1._ownerId = 100;
FindByRarity functor2;
functor2._rarity = 1;
FindItem(items, 10, functor1);
FindItem(items, 10, functor2);
}
FindItem 함수의 세번째 매개변수로 각 설정한 조건을 바로 넘겨줬다.
이는 콜백 함수에 해당한다.
'기초 C++ 스터디 > 객체지향' 카테고리의 다른 글
8-5. 템플릿 기초(2) - 클래스 템플릿 (0) | 2023.06.08 |
---|---|
8-4. 템플릿 기초(1) (0) | 2023.06.08 |
8-3. 함수 객체(Functor) (0) | 2023.06.08 |
8-2. 함수 포인터(2) (0) | 2023.06.08 |
8-1. 함수 포인터(1) (0) | 2023.06.08 |