member-function-pointers

    1热度

    2回答

    设置:我建立有部分C中的建筑和部分C++。 以我体系结构I具有: 甲data_io(C)它获取的数据发送到处理器回调并输出处理的数据。 甲data_processor(C),其负责处理数据和按需变化。 甲settings_manager(C++),它决定使用哪个处理器。 的关系如下: 的settings_manager对象被实例化,其内部初始化与一个默认处理器功能的data_processor,然

    0热度

    1回答

    我试图将包含字母“farming”的文本文件读入链接的节点列表。我创建了一个名为NumberList的类,它具有节点的结构。这是标题。 #ifndef NUMBERLIST #define NUMBERLIST #include <iostream> using namespace std; class NumberList { protected: //declare a cl

    1热度

    2回答

    我观察到,当我尝试获取指向成员函数的指针时,不同的GCC版本的行为有所不同。 class Foo { public: void bar() { } }; int main() { void (Foo::*func1)(void) = Foo::bar; // Error with gcc 4.3.2 and gcc 7.1.0 return 0; }

    2热度

    1回答

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

    1热度

    1回答

    我设置了这个帐户主要是因为我在其他地方找不到答案。我检查了各种教程或在stackoverflow和不同页面上的问题/答案。 我正在编程一个基于终端的textadventure,并需要一个函数的地图。这是我得到了什么(我离开了所有的意思都没有对这个问题的东西) #include <map> using namespace std; class CPlayer { private:

    9热度

    2回答

    尝试创建int成员函数指针映射并在构造函数初始化程序中初始化它。 像这样: class X { using STATEFUNC = void(X::*)(int); public: X() : m{ { 1, &setState1 } } {} void setState1(int x) { cout << "state1" << endl; } v

    4热度

    3回答

    我正在尝试编写一个模板类的函数,它接受一个参数,该参数是大类的私有数据中的成员类的函数指针。当你调用该成员时,它会在较小的类上调用该函数。 (?混淆右)为了证明,我这里有一个非工作例如: #include <vector> #include <iostream> using namespace std; template <typename T, typename C> struct

    -3热度

    1回答

    在我问我的问题之前,我将描述该场景。 比方说,我有一个叫BinaryOperator的类,有两个子类:And,Or。 我想知道是否有可能对我来说,And返回类型为Or*定义一个函数f()像这样: Or* And::f() 而且还Or返回类型为And*定义一个函数g()像这样: And* Or::g() 当我尝试这样做时,最终出现编译错误,说“'或'没有命名类型”。 请,如果可以,任何清晰度

    1热度

    2回答

    我试图创建一个函数重载因此它只能结合(工程)成员函数。我接过来一看在std::mem_fn http://en.cppreference.com/w/cpp/utility/functional/mem_fn template <class Ret, class T> /* unspecified */ mem_fn (Ret T::* pm); 函数签名所以我构建我的参数,例如 templ

    3热度

    1回答

    这里是指针到接受两个整数并返回一个int一个类的方法: template <typename T> using TFunction = int (T::*)(int, int); 我只能通过这里非const方法。 如何改变这个模板,使它能接受const和非const方法?