member-function-pointers

    1热度

    2回答

    我的班级有3个州。在每一种状态下,它都会做一些工作,并进入其他状态,或者保持在相同的状态(95%或更多的情况下,它将保持在相同的状态)。我可以实现状态模式(我假设你知道它)。我很喜欢的另一种方法是: 我有一个每个状态的成员函数,还有一个指向成员函数的指针,它指向当前状态函数。当我想进入另一个状态时,我只是将该函数指针指向另一个状态函数。 (也许这不完全等同于状态模式,但在我的情况下它工作正常)。

    1热度

    1回答

    A bit of background for the unified call proposal 是否统一调用语法允许C++程序员可以轻松地投一个成员函数指针到非成员函数指针,反之亦然? 换句话说,它允许通过发送类的实例作为第一个参数来调用成员函数经由非成员函数指针? struct X { void member() { } }; X x; void (*fp)(X*) =

    0热度

    1回答

    我有一个指向一个COM对象pfoo实现IFoo的指针。我想获得pfoo-> Bar()的地址,它是IFoo的一种方法。由于COM对象有很好的文档记录,所以这应该很容易。事实上,它是。如果酒吧()是,比如说,在接口的第五种方法(会计课程IUnknown方法的),地址可以从虚表中提取与 (*(void***)(pfoo))[5] 我的问题是,有没有办法做到这不需要使用“5”?看起来很容易出错,不得

    1热度

    1回答

    我在线看到了这个代码,我想知道它是如何实现的。由于成员函数指针不能分配给基类的成员函数指针,我很好奇派生类的成员函数的指针在哪里存储以及如何存储。 这是测试声明 #ifndef TestStudent_h #define TestStudent_h #include <iostream> #include <string> // Note 1 #include "TestCase.h

    -1热度

    2回答

    比方说,我们有一个类A它有一个方法void foo()。我知道我可以通过使用&A::foo得到指向foo()的指针,但是这个指针似乎只依赖类类型,而不是在实例化对象上。如果我们有两个对象a1和a2类型A,我们如何才能使用指针,成员函数指针或甚至指针地址之间的差异和a2foo()方法?基本上,我希望能够得到一个指向a1对象内的void foo()方法的指针,该指针与指向a2中的void foo()方

    0热度

    2回答

    我正在使用函数bfd_find_nearest_line来查找函数的源位置(从带有调试符号的可执行文件 - 编译为-g)。自然的论据之一是函数指针我想定位: boolean _bfd_elf_find_nearest_line (abfd, section, symbols, offset, filename_ptr,

    3热度

    1回答

    struct foo { void bar(int&&) && { } }; template<class T> using bar_t = void (std::decay_t<T>::*)(int&&) /* add && if T is an rvalue reference */; int main() { using other_t = void (fo

    9热度

    1回答

    使用reinterpret_cast将指向成员函数的指针转换为另一个指向同一类的成员函数是否合法?以下示例工作。但是合法吗? #include<iostream> #include<vector> #include<string> class A { public: void func_int(int x) { std::cout << x << std::endl;

    0热度

    2回答

    我正在为不同类型创建容器模板。其中一种是shared_ptr来反对。因此,对于操作数->和.调用对象方法余米试图通过指针的方法函数参数避免重复代码,但我得到这个错误: error: invalid use of non-static member function 'void A::show()' { doOperation(U::show); } 代码: template <typenam

    0热度

    1回答

    我努力创建派生类并将方法指针从它传递给基类,以便在基类中声明的函数可以调用它(通过接口调用派生类的函数)。 目标是创建派生类来引入它们自己的资源和函数,但是通过在基类提供的函数中调用其中一个函数来调用函数应该是可能的。为此,我需要将派生的成员函数指针传递给基类。 这里是我的尝试: class KeyFunction { void(*KeyFunction::KeyFuncPtr)()