반응형

 

 

 

함수 포인터 는?

함수 포인터 는 함수에 포인터를 달아서 다른 함수들을 교체해가면서 사용할 수 있는 방법이다.

 

 그럼 어디 쓰이냐? 

간단하게 생각하면 스킬 변경이나 같은 값으로 다른 효과를 내고 싶을때 사용한다.

 

사용

{

 선언은 함수와 비슷해 [ 자료형 (* 함수명)(매개변수) ]처럼 사용한다.

 

	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

+ Recent posts