本文介绍了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 ++成员函数重载与&amp; (&符)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-06 10:34