반응형
함수 포인터 는?
함수 포인터 는 함수에 포인터를 달아서 다른 함수들을 교체해가면서 사용할 수 있는 방법이다.
그럼 어디 쓰이냐?
간단하게 생각하면 스킬 변경이나 같은 값으로 다른 효과를 내고 싶을때 사용한다.
사용
{
선언은 함수와 비슷해 [ 자료형 (* 함수명)(매개변수) ]처럼 사용한다.
void (*Point_func)();
void (*Point_func_mg)(int &a ,int &b);
void pointFuncTest1() { printf("1번작동");}
void pointFuncTest2() { printf("2번작동");}
C->Point_func = pointFuncTest1;
C->Point_func();
C->Point_func = pointFuncTest2;
C->Point_func();
B->Point_func_mg = swap_reference;
B->Point_func_mg(x, y); // x =10, y=5
printf("\n\n\n%d , %d", x, y);
}
처럼 사용한다.
결과를 한번보자
{
}
처럼 작동한다.
또 함수포인터 를 매개변수로 받아 줄수 있는 방법도있다.
//선언
D3DXVECTOR3(*Shootting)(Ani_spriteActor _Bullet, D3DXVECTOR3 _BulletPos,int _speed);
void SETBulletTiype( D3DXVECTOR3(_Funce(Ani_spriteActor _Bullet, D3DXVECTOR3 _BulletPos, int _speed))=Shutting_Under);
inline static D3DXVECTOR3 Shutting_Under(Ani_spriteActor _Bullet, D3DXVECTOR3 _BulletPos, int _speed);
//함수를 넣어주는 함수
void BulletBase::SETBulletTiype( D3DXVECTOR3(_Funce(Ani_spriteActor _Bullet, D3DXVECTOR3 _BulletPos, int _speed)))
{
this->Shootting = _Funce;
}
넣어주는방법
this->SETBulletTiype(Shutting_Under);
'언어 > C++' 카테고리의 다른 글
cpp 전처리기 (0) | 2023.09.05 |
---|---|
c++ std::function 사용하기 (0) | 2023.01.10 |
인라인 함수(Inline Function) (0) | 2021.06.15 |
네임스페이스 (9) | 2021.05.18 |
bit연산! 또는 bit Flag (0) | 2021.05.05 |