问题标签 [member-function-pointers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
5398 浏览

c++ - c++成员函数指针问题

我是 c++ 新手。我想了解对象指针和指向成员函数的指针。我写了如下代码:

代码 :

但是当我编译它时,它向我显示了以下两个错误:

我的问题如下:

  1. 我在这段代码中做错了什么?
  2. 如何制作对象指针?
  3. 如何使指向类的成员函数的指针以及如何使用它们?

请解释我这些概念。

0 投票
3 回答
6222 浏览

c++ - 当它是类数据成员时如何调用指向成员函数的指针?

在上面的测试代码中,pfB. 调用它的语法规则是什么?它应该是直截了当的,但我没有得到一个合适的匹配。例如,如果我尝试obj.*pf(0,0);,那么我会得到:

0 投票
2 回答
1698 浏览

c++ - 如何将成员函数指针传递给模板函数中的重载方法?

我提到了这个有点相似的问题。但是这里的情况不同:

在上面的测试代码中,我有一个重载的fooinside A。如果只有 1foo则代码可以正常工作。但是对于重载的情况,编译器会抱怨:

错误:没有匹配的函数调用 `ReceiveFuncPtr(A&, [未解决的重载函数类型])'

除了在调用时进行显式类型转换ReceiveFuncPtr(),我们有什么方法可以对其template参数进行一些更改并使其foo(int)始终能够接收任何类似的版本class A

编辑:想法是在调用函数时不要担心类型。它应该很简单,ReceiveFuncPtr(obj, &A::foo);让其template发挥作用。

0 投票
1 回答
1200 浏览

c++ - 具有包含另一个类的函数指针的映射的类

我想做的是有一个包含第二个类的函数指针映射的类,但是第二个类的名称应该无关紧要(不能硬编码到第一个类中)我真的希望能够实现这不使用宏。我遵循了 learncpp.com 关于函数指针的示例,但是当在类之间传递它们时,我真的迷路了!我的尝试如下:

0 投票
1 回答
7451 浏览

c++ - 将成员函数指针转换为 TIMERPROC

如何将成员函数指针转换TIMERPROC为与 WINAPI 一起使用的类型SetTimer?下面的代码片段显示了我现在是如何做的,但是当我编译时出现此错误:

错误 C2664:“SetTimer”:无法将参数 4 从“void (__stdcall CBuildAndSend::*)(HWND,UINT,UINT_PTR,DWORD)”转换为“TIMERPROC”

回调需要绑定到它的原始类实例。如果有更好的方法来做到这一点,我会全力以赴。谢谢。

0 投票
2 回答
270 浏览

c++ - 为什么编译器不能在我的代码中推断出模板参数?

我正在使用视觉工作室,我已经尝试了所有我能想到的东西。但不知道为什么这段代码会产生错误,这是我的代码:

它会产生这个错误:

我想知道当参数 x 在函数内部初始化时它不会产生该错误,如下所示:

0 投票
1 回答
668 浏览

c++ - 使用 &MyClass::MyFunction 时出现未定义的引用链接错误

这让我很难过,所以我想我会在这里查询:

我有一堂课如下:

那是在标题中。在构造函数中

正如我所看到的那样。没有编译时错误。但是,当我链接如下:

我得到:

这没有任何意义。让我感到特别奇怪的是,这是一个链接器错误。我包括了我的两个目标文件。

谁能告诉我发生了什么事?如果它可能相关,我在 Windows 上的 MinGW 上。

编辑:

史诗般的失败。在我的 cpp 文件中定义函数时,我忘记了 MyClass:: 前缀。我只是没有决定检查。几乎和在类定义后忘记分号一样糟糕。

0 投票
3 回答
877 浏览

c++ - c ++:可以使用 boost::bind 将成员函数转换为预期的函数指针签名吗?

我正在使用将函数指针传递给方法调用的第 3 方库。

正常用法如下:

现在我想让 continueAfterOPTIONS 方法成为一个类的成员函数。通常我使用 boost::bind 来做到这一点:

导致

我尝试为函数的参数添加占位符,但这没有任何区别。我正在尝试做的事情可能吗?有没有办法投射绑定结果?

谢谢!

0 投票
3 回答
22326 浏览

c++ - C++ 指向虚函数的指针

如果你有这样的结构

和像这样的参考

您可以像这样获得指向其func方法的指针:

现在,如果该方法是虚拟的并且您在运行时不知道它是什么,该怎么办?为什么你不能得到这样的指针?

是否可以获得指向该方法的指针?

0 投票
3 回答
2867 浏览

c++ - create_pthread() 调用的强制转换成员函数

我想停止警告

server.cpp:823:警告:从 'void* (ClientHandler:: )()' 转换为 'void ( )(void )'

在通话中:

其中handle()是 的成员函数ClientHandler

我很难从编译器破译函数类型的消息。

问题是:

  • 我应该改变handle()界面吗?我可以摆脱整体铸造吗?
  • 我应该换演员吗?究竟是什么?
  • 完全不同的东西?