member-function-pointers相关内容

“向上转型"是否安全?方法指针并将其与基类指针一起使用?

假设我有一个指针类型,它可以保存基类方法的地址.我可以将子类方法的地址分配给它并期望它正常工作吗?在我的例子中,我将它与基类指针一起使用,对象的动态类型是派生类. 结构 B{typedef void (B::*MethodPtr)();};结构 D:公共 B{void foo() { cout(&D::foo);(pb->*mp)();} 标准在谈到 static_cast 时这样说: ..
发布时间:2022-01-24 16:21:31 C/C++开发

C++ 的面向对象回调?

是否有一些库可以让我在 C++ 中轻松方便地创建面向对象的回调? 例如,Eiffel 语言具有“代理"的概念,其工作方式或多或少是这样的: class Foo{上市:酒吧*酒吧;富(){酒吧 = 新酒吧();bar->publisher.extend(agent say(?,"Hi from Foo!", ?));bar->invokeCallback();}说(字符串 strA,字符串 ..
发布时间:2022-01-03 08:23:10 C/C++开发

如何调用指向成员函数的指针?

我收到了一个我不明白的编译错误 (MS VS 2008).搞了好几个小时之后,一切都变得模糊了,我觉得我错过了一些非常明显(而且非常愚蠢)的东西.这是基本代码: typedef int (C::*PFN)(int);结构 MAP_ENTRY{内部标识;PFN PFN;};C级{...int调度(int,int);MAP_ENTRY *pMap;...};int C::Dispatch(int i ..
发布时间:2021-12-31 22:20:23 C/C++开发

如何散列和比较指向成员函数的指针?

我如何散列(std::tr1::hash 或 boost::hash)一个 C++ 成员函数指针? 示例: 我有几个 bool (Class::*functionPointer)()(非静态)指向类 Class 的几个不同方法,我需要散列那些指向成员函数的指针. 我该怎么做? 另外,我如何比较(std::less)那些成员函数指针,以便将它们存储在 std::set 中? ..
发布时间:2021-12-27 16:10:08 C/C++开发

C++继承和成员函数指针

在C++中,可以使用成员函数指针指向派生(甚至基)类成员吗? 编辑:也许一个例子会有所帮助.假设我们有一个层次结构,按照继承顺序由 X、Y、Z 三个类组成.Y 因此有一个基类 X 和一个派生类 Z. 现在我们可以为类Y定义一个成员函数指针p.写成: void (Y::*p)(); (为简单起见,我假设我们只对签名为 void f() 的函数感兴趣) 这个指针p现在可以用来指向 ..
发布时间:2021-12-17 19:42:37 C/C++开发

如何使用指向成员函数的指针进行切换?

好吧,我只想做一个“开关";使用函数指针,但使用方法指针.开关是,如果我调用方法 Run(),它将重定向到 A::RunOn() 或 A::RunOff()code> 根据 Run ptr 指向这些成员函数. 我知道这是可以做到的.我在普通的 c 中做到了,但我已经搜索并在 c++ 但没有运气. A 类{typedef (void)(A::*RunPtr)(int);RunPtr RunM ..

C++ - 是否可以从模板中的成员函数类型中提取类和参数类型?

我想用模板化类包装符合类型“void (ClassType::Function)(ArgType)"的成员函数.后来,我想将 ClassType 的一个实例传递给这个模板的一个实例,并让它调用包装的方法: class Foo {民众:Foo() : f_(0.0) {}void set(double v) { f_ = v * 2.1;}double get() { 返回 f_;}私人的:双 f ..

多态成员变量指针的std :: map

我正在实现与字符串键关联的成员变量指针的映射.所有变量范围从基类“BaseA"从映射访问变量时,仅需要使用基类方法(示例中的getDesc()),因此不必检索原始类型. 此代码可在GNU g ++ 6.2.1下编译并运行,但是根据我的读物,reinterpret_cast的使用不可移植,并且可能无法与其他编译器一起使用.这样对吗?还是此代码符合C ++标准?没有使用reinterpret_c ..

用裸函数指针调用成员函数

如果有一个对象和一个指向成员的裸函数指针,那么调用成员函数的最佳方法是什么?本质上,我想使用 thiscall 调用约定来调用函数指针. 背景:我正在共享库中动态查找符号,获得了工厂函数指针和指向要调用的某个成员函数的指针.成员函数本身不是虚拟的.我无法控制共享库,只有二进制文件. 示例: typedef void *(* GenericFptr)();GenericFptr lo ..
发布时间:2021-05-09 20:26:44 C/C++开发

铸造成员函数指针

我需要使用一个成员函数指针,该指针带有一个在其他代码中使用的基类的参数.好吧,我只是想做下面的例子.这段代码可以正常工作,但是我想知道这样的转换是否总是安全的吗?我无法在此处进行 dynamic 或 static 投射. #includeC级{上市:C():c('c'){}虚拟〜C(){}const char c;};D级:公共C{上市:D():d('d'){}虚拟〜D(){ ..

C ++类中的函数指针表

我正在尝试在一个类中创建一个函数指针表.我还没有在网上找到任何此类示例,其中大多数涉及在其类之外使用成员函数指针. 例如: class测试{typedef void(Test :: * FunctionType)();FunctionType表[0x100];无效的TestFunc(){}无效FillTable(){for(int i = 0; i ..
发布时间:2021-04-19 19:28:08 C/C++开发

函数/方法指针被推送到双端队列

我正在为运行功能创建队列.我将需要被调用的函数放入std::deque中,然后稍后遍历双端队列调用每个函数并让其运行,有时甚至根据返回结果来进行操作. 我遇到的问题实际上是关于将这些功能放置在双端队列中的. 在名为A2_Game的类中有此双端队列.我也有一个叫Button的类. 我的代码类似于以下内容: class Button { bool ..
发布时间:2020-11-11 20:06:07 C/C++开发

指向成员函数的函数的指针

我想使用具有函数set_min_objective的库(nlopt),该函数需要一个指向数字函数myfunc的指针并找到其最小值.我想创建一个包含适当初始化的成员函数的类.然后,set_min_objective将在特定实例(以下示例中的myP)中找到最佳值.调用顺序为: opt.set_min_objective(myfunc, NULL); ,我想使用类似的东西: opt.se ..
发布时间:2020-11-11 19:55:15 C/C++开发

任意类的const和非const成员函数的模板包装器

我想要一个模板化的类(包装器),该类可以包含所有可能的类(T)并使用这些类的成员函数(函数)做事(在这里评估)。 我发现了类似的请求,您可以看到此处和此处,但都不能满足两个条件 条件: 两者都是指向包装类中必须可以访问该类的实例(T * ptr)和一个指向成员函数(函数)的指针。 包装类应起作用 以下代码仅适用于非const: #include ..
发布时间:2020-10-08 06:50:38 C/C++开发