언리얼을 접하고 배우던중에 궁금한점이 생겼다.
클래스의 멤버함수를 콜백함수로 등록하는 기능을하는 함수가 있다.
InputComponent->BindAxis("MoveForward", this, &ACollidingPawn::MoveForward);
요런 모양새인데, 내가 궁금했던것은 ACollidingPawn::MoveForward앞에 &연산자가 왜 있는지 이다.
예전에 c++ 기초를 한창 배울때는 함수는 이름자체가 포인터라고 배웠는데, 뭔가 알고있는것과 맞지 않는 기분이 들었다. 그래서 구글링해보니 답이나왔다.
내가 알고있던 개념은 전역함수와 클래스 내부에 정의된 static함수에 한해서만 성립하는 것이었다.
c++이 전역함수와 클래스 내부의 static함수에 대해서만 암시적 형변환으로 &연산자를 붙이지않아도 붙인것처럼 동작하는 것이고, 클래스의 멤버함수에 대해서는 무조건 &연산자를 붙여야한다.