Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
传递带或不带&;的函数指针; 我目前在C++中用VC++学习游戏开发,我遇到了函数指针作为输入的函数: InputHandle->BindAction("Grab",IE_Pressed, this, &UGrabber::Grab); 从基本C++中,我知道在传递函数指针作为属性(uGracBe::GOT)时是可选的,但是如果省略了:::/P>,UnEngress抱怨以下错误代码 error C3867: 'UGrabber::Grab': non-standard syntax; use '&' to create a pointer to member_C++_Unreal Engine4 - Fatal编程技术网 ,UnEngress抱怨以下错误代码 error C3867: 'UGrabber::Grab': non-standard syntax; use '&' to create a pointer to member,c++,unreal-engine4,C++,Unreal Engine4" /> ,UnEngress抱怨以下错误代码 error C3867: 'UGrabber::Grab': non-standard syntax; use '&' to create a pointer to member,c++,unreal-engine4,C++,Unreal Engine4" />

传递带或不带&;的函数指针; 我目前在C++中用VC++学习游戏开发,我遇到了函数指针作为输入的函数: InputHandle->BindAction("Grab",IE_Pressed, this, &UGrabber::Grab); 从基本C++中,我知道在传递函数指针作为属性(uGracBe::GOT)时是可选的,但是如果省略了:::/P>,UnEngress抱怨以下错误代码 error C3867: 'UGrabber::Grab': non-standard syntax; use '&' to create a pointer to member

传递带或不带&;的函数指针; 我目前在C++中用VC++学习游戏开发,我遇到了函数指针作为输入的函数: InputHandle->BindAction("Grab",IE_Pressed, this, &UGrabber::Grab); 从基本C++中,我知道在传递函数指针作为属性(uGracBe::GOT)时是可选的,但是如果省略了:::/P>,UnEngress抱怨以下错误代码 error C3867: 'UGrabber::Grab': non-standard syntax; use '&' to create a pointer to member,c++,unreal-engine4,C++,Unreal Engine4,有人能解释一下原因吗 BindAction函数声明如下所示: FInputActionBinding& BindAction( const FName ActionName, const EInputEvent KeyEvent, UserClass* Object, typename FInputActionHandlerSignature::TUObjectMethodDelegate< UserClass >::FMethodPtr Func ) FInputActi

有人能解释一下原因吗

BindAction函数声明如下所示:

FInputActionBinding& BindAction( const FName ActionName, const EInputEvent KeyEvent, UserClass* Object, typename FInputActionHandlerSignature::TUObjectMethodDelegate< UserClass >::FMethodPtr Func )
FInputActionBinding&BindAction(const FName ActionName,const EInputEvent KeyEvent,UserClass*对象,typename finputactionhandlersign::TUObjectMethodDelegate::FMethodPtr Func)

您是否混淆了
的两个不同含义?一个表示“引用”(例如
int&
=对int的引用),另一个表示操作员地址(例如
&UGrabber::Grab
=UGrabber::Grab
函数的地址)。仅供参考:。虽然可以省略地址运算符(
&
)来获取普通函数的地址,但在非静态成员函数的情况下,这是不允许的。(我想前者是C的继承)不,我知道两者之间的区别。在传递属性时,如果在变量名之前使用“&”,则应传递变量的地址。这就是我感到困惑的地方,因为我知道,对于函数“void MainFunc(void(*myFunc)()”),当我使用&调用“MainFunc”时,它是可选的,例如-“MainFunc(myFunc)”或“MainFunc(&myFunc)”都是可选的valid@Scheff啊,太好了,谢谢你