function-pointers

    0热度

    1回答

    在下面的例子中,我很难理解函数指针对成员函数的调用。 (f.*(FPTR) bp)(0); // This call b() (b.*(BPTR) fp)(0); // This call f() 我想知道的代码替换(因为我知道一个函数调用像obj.Fun()被替换为乐(& OBJ)编译器为这两个函数调用时,这些成员函数是虚拟和非虚拟 谁能帮助我了解,请 我想了解更多这样的链接解释:?htt

    0热度

    1回答

    如何指示gcc警告我有关无效函数指针转换的问题,比如g ++会为以下代码段做些什么? And ..为什么gcc没有提醒我这件事?将指针传递给do_something()时会发生什么? #include <stdio.h> typedef void (*void_func_t)(); typedef void (*void_int_func_t) (int, int, int); void

    4热度

    2回答

    我正在实现一个类的简单文本格式化程序。它的主要功能可以接收将被连接的值列表。或者可选地,对于参数不是ostream的好友的情况,我接受一个转换函数作为将所有其他参数转换为std :: string的第一个参数。 下面的代码显示了这个想法,但它不能编译。为了简单起见,我将在例子中输出到cout。 struct formater{ template<typename P, typename.

    -1热度

    1回答

    我已经看到了很多示例如何使函数指针指向类类型的特定的C++类非静态成员。不过,我会用这样的指针,它可以用于任何类型的类。为了证明这个想法,我写了一个伪示例: class A { public: A(){} //constructor void callMe() { /* do something */ } }; class B { public:

    0热度

    1回答

    我想交换两个参数的值。但是我没有通过在函数中交换他们的地址来实现它。起初,我认为地址可以在功能上改变。但是在调试之后,我发现虽然地址在函数中被改变了,但在主函数中没有改变。为什么指针的地址在函数中的作用与参数的值相同?做,只更改副本? include<stdio.h> void swap(int *, int *); int main() { int a = 5 , b = 10;

    0热度

    1回答

    我正在开发一个库。我想在库中使用回调函数来注册将从Lua环境中调用的事件。我的库具有所有低层功能(在文件-reg_callback.cpp & reg_callback.h中)。所有更高层功能都将在Lua环境中(Lua脚本)。 http://opensourceforu.com/2012/02/function-pointers-and-callbacks-in-c-an-odyssey/ 参考该

    0热度

    1回答

    我想使用模板来创建一个用于理解概念的映射,但是我收到一个错误,并且无法理解我在做什么错误。 任何人都可以看看,让我知道我做错了什么?如果可能的话,请分享一个设计的实例,我真的很感激。 感谢 #include <iostream> #include <map> using namespace std; enum MathOperations { ADD = 0, SU

    1热度

    1回答

    我创建地图一个函数指针如示于下面的最小工作实例: #include <iostream> #include <map> #include <vector> using namespace std; typedef std::vector<bool > Bar; typedef bool (*Foo)(Bar b); typedef std::map<int, Foo > MapOf

    1热度

    2回答

    声明: “数组n函数指针,返回函数指针,返回指向整数” 谁能帮助我理解函数原型对于上述说法? 鉴于答案 - int *(*(*a[N])())(); 请谁能给我解释一下我们是如何在上面得出答案?

    1热度

    3回答

    我最近在处理C代码时偶然发现了这个奇怪的想法。 我已经写的函数返回一个双和作为参数取在指针到功能和一定数量的参数,即 double template_1(double (*)(double),...); 此功能正确地识别真正的功能的特定属性 double f(double); 表示为template_1中的指针,以使template_1对我可能插入的每个实际函数有效。 现在我不得不写另一个