本文介绍了C ++成员函数重载与& (&符)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何选择正确的错误()成员函数?我需要以某种方式投射吗?
How to pick the correct error() member function? Do I need to cast somehow?
using namespace std;
struct test
{
int error();
void error(int x);
int fun();
};
int main() {
auto f1 = &test::error; // how to pick the correct function?
auto f2 = &test::fun; // works
}
推荐答案
是的,您可以使用。
Yes, you can use static_cast
.
std :: transform(s.begin(),s.end(),s.begin(),static_cast< int(*)(int)>(std :: toupper));
p>
std::transform(s.begin(), s.end(), s.begin(), static_cast<int(*)(int)>(std::toupper));
因此您可以:
auto f1 = static_cast<int(test::*)()>(&test::error);
auto f2 = static_cast<void(test::*)(int)>(&test::error);
这篇关于C ++成员函数重载与& (&符)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!