问题标签 [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 投票
3 回答
346 浏览

c++ - 指向类成员的指针

我正在使用 Boost Spirit 解析器,当解析器正在解析时,语义动作会反映到 ParserActions 类的实例中。

这是解析器的代码(相关部分)

0 投票
4 回答
445 浏览

c++ - 什么类型可以保存 C++ 中不同类的成员函数指针?

我需要一个数组来保存不同类的成员函数指针。如何定义数组?

代码应如下所示:

我试过void*了,但它不起作用。

0 投票
3 回答
411 浏览

c++ - 层次结构中的成员函数指针

我正在使用一个定义接口的库:

我有一个小的层次结构

在 的成员函数中derived,我想调用

但似乎它&derived::foo实际上是一个成员函数指针base;gcc 吐出来

我可以通过显式转换this为来解决这个问题base *;但是为什么编译器不能匹配调用desttype = base(因为derived *可以隐式转换为base *)?

另外,为什么不是 &derived::foo成员函数指针derived

0 投票
5 回答
4810 浏览

c++ - 指向成员函数的函数指针

这有几个重复,但没有人解释为什么我可以使用成员变量来存储指针(在FOO)但是当我用局部变量(在的注释部分BAR)尝试它时,这是非法的。有人可以解释一下吗?

0 投票
2 回答
178 浏览

c++ - 成员函数指针不太正确

我有一个模板化的 SpecialisedRedBlackTree 类。

我的月课不是。

在我的 Month 类中,我有一个私有成员,它是 SpecialisedRedBlackTree 的一个实例:

如您所见,它将采用 Day 类/对象(请以我弄错的任何术语纠正我)。

在我的 Month 类中,我有一个方法将方法函数指针传递给该方法:

但是因为我将 bool (Day, Day) 指针传递给期望 bool (T, T) 的模板类

T 是这个 .... 模板的一部分

有什么建议吗?

0 投票
1 回答
1115 浏览

c++ - c++ 指向(成员?)函数的通用指针

我似乎无法声明指向函数的通用指针。

有这两个函数被调用:

这两个函数调用者:

当我尝试将它们与 boost::bind 一起使用来调用成员函数时,它们会给我编译错误。

这有效:

这不会:

这应该怎么做?

0 投票
3 回答
947 浏览

c++ - 在 C++ 中处理指向层次结构中成员函数的指针

我正在尝试对以下情况进行编码:我有一个基类,它提供了一个用于处理事件的框架。我正在尝试为此使用一组指向成员函数的指针。它如下:

然后用户应该从这个派生其他类并提供处理程序:

此代码无法编译,因为 DEH::func_t 无法转换为 EH::func_t。这对我来说很有意义。在我的情况下,转换是安全的,因为下面的对象this实际上是 DEH。所以我想要这样的东西:

然后代替

在 DEH::DEH() 放

所以,最后的问题(花了我足够长的时间......):有没有办法EH::DEH_handle_event_5_wrapper自动创建这些包装器(如)?或者做类似的事情?这种情况还有哪些其他解决方案?

谢谢。

0 投票
6 回答
611 浏览

c++ - 指向虚拟成员函数的指针在基类的构造函数中是否有效?

我的问题不是关于从基类构造函数调用虚成员函数,而是指向虚成员函数的指针在基类构造函数中是否有效。

鉴于以下

这会为所有兼容的 c++ 编译器生成“In B::vmember()”吗?

0 投票
3 回答
513 浏览

c++ - 指向成员函数、模板和继承混合的指针

我正在尝试创建一个通用的“回调”对象,它将保存任意数据并调用相关类的成员函数。由于内部政策,我不能使用 Boost。

回调对象如下所示:

它适用的课程:

以下测试按预期工作:

到现在为止还挺好。

但是,当同事尝试从Callback类派生而不是使用 atypedef时,由于指针不兼容,他们得到了编译错误:

我尝试在回调类中使用“奇怪的重复模板模式”并设法让派生类工作,但它破坏了使用该typedef方法的代码。

我的问题是:

如何修改 Callback 该类以处理这两种情况,而不需要该类用户的额外工作?

0 投票
4 回答
1518 浏览

c++ - 使用裸函数指针调用成员函数

如果您有一个对象和一个指向成员的裸函数指针,那么调用成员函数的最佳方法是什么?本质上我想用thiscall调用约定来调用函数指针。

背景:我正在动态查找共享库中的符号,获取工厂函数指针和指向我要调用的某个成员函数的指针。成员函数本身不是虚拟的。我无法控制共享库,我只有二进制文件。

例子:

目前我正在使用union将函数指针转换为指向成员函数的指针。它很丑陋,并创建了对编译器实现细节的依赖: