c – ‘&’:绑定成员函数表达式的非法操作

前端之家收集整理的这篇文章主要介绍了c – ‘&’:绑定成员函数表达式的非法操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Print address of virtual member function4个
当我尝试使用带有main函数的单个cpp文件时,这是有效的,
sprintf(smem_options,"#transcode{vcodec=RV24}:smem{"
     "video-prerender-callback=%lld,"
     "no-time-sync},",(long long int)(intptr_t)(void*)&cbVideoPrerender
);

如何在类中将函数参数传递给sprintf?

sprintf(smem_options,(long long int)(intptr_t)(void*)&cbVideoPrerender
);

我得到的错误信息是:错误C2276:’&’ :绑定成员函数表达式的非法操作

解决方法

假设cbVideoPrerenderer是第二个例子中的成员函数,你需要说& Foo :: cbVideoPrerenderer,其中Foo是它所属的类.

但只有当它是静态成员函数时才会有效.非静态成员函数与普通函数不同,当您使用& Foo :: bar语法形成指向成员函数的指针时,您获取内容无法转换为void *(通常是两次与指针一样大,因为它包含有关对象类型的信息).

原文链接:https://www.f2er.com/c/116728.html

猜你在找的C&C++相关文章