Notice
Recent Posts
Recent Comments
Link
오븐 노트
[C++] 콜백 함수 본문
#include <iostream>
using namespace std;
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 item;
}
return nullptr;
}
int main()
{
// 콜백 (Callback) : 다시 호출하다, 역호출
// 게임 제작 시 콜백의 개념이 자주 등장
// 특정 상황이 생기면 -> 특정 기능 실행
// ex) UI 스킬 버튼을 누르면 -> 스킬을 쓰는 함수를 호출
Item items[10];
items[3]._ownerId = 100;
items[8]._rarity = 2;
FindByOwnerId functor1;
functor1._ownerId = 100;
FindByRarity functor2;
functor2._rarity = 1;
Item* item1 = FindItem(items, 10, functor1);
Item* item2 = FindItem(items, 10, functor2);
return 0;
}
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의
C++ 카테고리의 글은 인프런 Rookiss님의 강의를 공부하며 정리하는 내용입니다.
이미 알고 있는 내용도 다시 정리 되어있을 수 있습니다.
모든 글은 제가 공부하기 위해 작성합니다.
'Develop > C++' 카테고리의 다른 글
[C++] vector #2 (0) | 2023.05.29 |
---|---|
[C++] vector #1 (0) | 2023.05.18 |
[C++] 템플릿 기초 #2 (0) | 2023.05.03 |
[C++] 템플릿 기초 #1 (0) | 2023.05.03 |
[C++] 함수 객체 (0) | 2023.05.01 |