function-pointers

    0热度

    1回答

    给定以下代码,我无法编译。 template < typename OT, typename KT, KT (OT::* KM)() const > class X { public: KT mfn(const OT & obj) { return obj.*(KM)(); // Error here. }

    6热度

    3回答

    以下代码给出void b() { m = &A::a; };的编译错误,指出A::a()受保护。 (这是 - 但这应该没有问题) 但是,编写B::a()时,编译器并不在意。尽管它们的含义相同,我宁愿A::a(),因为它明确地指出a()是A. 那么究竟是为什么A::a()禁止原因界定? 编辑 也许有人可以找到,如果A::a()在B::b()允许这将是问题的一个例子。如果有这样一个例子,我会将它标记为

    1热度

    2回答

    我检查了一块现有的代码,发现当用Visual C++ 9和MinGW编译它的行为是不同的: inline LogMsg& LogMsg::operator<<(std::ostream& (*p_manip)(std::ostream&)) { if (p_manip == static_cast< std::ostream& (*)(std::ostream&) > (&std::e

    42热度

    11回答

    考虑这段JavaScript代码: var bar = function() { alert("A"); } var foo = bar; bar = function() { alert("B"); }; foo(); 运行此代码,我得到 “A”。这种行为是否是javascript规范的一部分,我可以依赖它吗?

    5热度

    2回答

    前段时间我有这个问题,我放弃了,但最近它返回。 #include <iostream> class element2D; class node2D { public: void (element2D::*FunctionPtr)(); void otherMethod() { std::cout << "hello" << std::endl;

    5热度

    3回答

    我正在研究音译工具。我有两个模块词法和翻译器。 Lexer从输入文本中生成令牌。根据当前选择的语言,我必须调用适当的翻译程序。 我想出了几个想法来做到这一点。首先是创建一个名为base_translator的基类,并提供每个译者必须覆盖的虚拟方法(translate())。现在创建一个工厂translator_factory并用语言名称调用create()。这个工厂将返回适当的实例。 但是,这似乎

    3热度

    3回答

    我有一个调用全局函数的问题,它将函数的指针作为参数。 这里是全局函数的声明: int lmdif (minpack_func_mn fcn, void *p, int m, int n, double *x, double *fvec, double ftol) 的“minpack_func_mn”符号是一个指向函数的类型定义,定义为: typedef int (*minpack

    2热度

    4回答

    我需要一个数组来保存不同类的成员函数指针。我如何定义数组? 的代码应该是这样的: arr[0] = &CMyClass::FuncX; arr[1] = &CYourClass::FuncY; arr[2] = &CHerClass::FuncZ; 我试过void*,但它不工作。

    17热度

    2回答

    是否可以调用C(++)静态函数指针(不是委托)这样 typedef int (*MyCppFunc)(void* SomeObject); 从C#? void CallFromCSharp(MyCppFunc funcptr, IntPtr param) { funcptr(param); } 我需要能够从c#回调到一些旧的C++类。 C++被管理,但类不是引用类(还)。 到

    4热度

    2回答

    我想通过函数指针作为参数将类A的成员函数传递给类B。请告知这条路是否通向某处,并帮助我填补坑洼。 #include <iostream> using namespace std; class A{ public: int dosomeA(int x){ cout<< "doing some A to "<<x <<endl; return(0); } };