C + +成员函数重载&(&)

马蒂亚斯·迪特尔·沃尔诺夫

如何选择正确的error()成员函数?我需要以某种方式投射吗?

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
}
songyuanyao

我需要以某种方式投射吗?

是的,您可以使用static_cast

static_cast 也可以通过执行到特定类型的函数到指针的转换来消除函数重载的歧义,例如

std::for_each(files.begin(), files.end(),
              static_cast<std::ostream&(*)(std::ostream&)>(std::flush));

这样你就可以:

auto f1 = static_cast<int(test::*)()>(&test::error);
auto f2 = static_cast<void(test::*)(int)>(&test::error);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++成员函数重载选择错误的函数

来自分类Dev

C ++通过重载更改成员函数的访问权限

来自分类Dev

具有重载成员函数的C ++ std :: mem_fn

来自分类Dev

运算符重载和非成员函数C ++

来自分类Dev

C++获取重载成员函数指针的常用方法

来自分类Dev

C ++:如何重载函数,使其可以使用任何函子,包括指向成员函数的指针?

来自分类Dev

使用非成员ostream重载函数打印任何c ++ 11数组

来自分类Dev

VS2012 C ++找不到重载的成员函数/声明不兼容

来自分类Dev

错误C2511:在类中找不到重载的成员函数

来自分类Dev

为什么无法重载CUDA C ++类的主机/设备成员函数

来自分类Dev

涉及“使用”别名的成员函数重载解析中的Intel C ++编译器错误?

来自分类Dev

C ++后缀/前缀运算符重载为非成员函数

来自分类Dev

错误C2511:在类中找不到重载的成员函数

来自分类Dev

C++:使用关键字运算符重载成员的构造函数

来自分类Dev

c ++:函数不能重载

来自分类Dev

C ++模板函数的重载

来自分类Dev

重载递归函数C ++

来自分类Dev

函数重载C ++指针

来自分类Dev

模板函数重载C ++

来自分类Dev

函数重载C ++?

来自分类Dev

C ++ 11-将成员函数传递给线程会给出:没有重载函数需要2个参数

来自分类Dev

C ++函数重载(函数多态)

来自分类Dev

为什么我不能将C ++转换运算符作为非成员函数重载于类之外?

来自分类Dev

重载字符向量和字符串C ++时对成员函数的调用不明确

来自分类Dev

重载成员函数的函数特征

来自分类Dev

c ++传递成员函数

来自分类Dev

成员函数指针c ++

来自分类Dev

C ++静态成员函数错误C2556重载函数仅返回类型有所不同

来自分类Dev

C ++模板函数重载解析

Related 相关文章

热门标签

归档