Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#/c++;成员函数指针 >P>是否可以将C++中的委托函数存储在C++中?_C#_C++_Delegates - Fatal编程技术网

c#/c++;成员函数指针 >P>是否可以将C++中的委托函数存储在C++中?

c#/c++;成员函数指针 >P>是否可以将C++中的委托函数存储在C++中?,c#,c++,delegates,C#,C++,Delegates,委托如何在不了解实例类的情况下完成对象实例、memberFuncPtr对和调用 (注意:当我试图理解发布者/订阅者代码设计中的事件/委托时,出现了这个问题) 我读到: C++需要一个类类型的知识,例如CLSASTYPE::*函数 C代表允许SeaDeave++CysExcase.MefFunc< P>有一种类型叫做不能准确地得到你所要求的。 但是,您可以用C++中的函数指针的形式存储成员函数。 void yourFunc(int x); int main() { void (*funcPtr

委托如何在不了解实例类的情况下完成对象实例、memberFuncPtr对和调用

(注意:当我试图理解发布者/订阅者代码设计中的事件/委托时,出现了这个问题)

我读到: C++需要一个类类型的知识,例如CLSASTYPE::*函数
C代表允许SeaDeave++CysExcase.MefFunc

< P>有一种类型叫做,但是如果使用的是C++的更老版本(比C++ 11大),则需要使用原始函数指针。在C中检查函数指针,它们对于C++是相同的。

< P>不能准确地得到你所要求的。 但是,您可以用C++中的函数指针的形式存储成员函数。
void yourFunc(int x);
int main()
{
  void (*funcPtr)(int)=&yourFunc;
  (*funcPtr)(10);
}

带int参数的正规函数 //和无效返回类型

 void fun(int a)
 {
 printf("Value of a is %d\n", a);
 }

int main()
{
// fun_ptr is a pointer to function fun() 
void (*fun_ptr)(int) = &fun;

/* The above line is equivalent of following two
   void (*fun_ptr)(int);
   fun_ptr = &fun; 
*/

// Invoking fun() using fun_ptr
(*fun_ptr)(10);

return 0;
}

您了解了
std::function
的功能吗?我没有,但我现在就写下来;]C和C++是两种不同的语言,具有不同的规则集。在它们之间画平行线可能会适得其反。C#中的委托很可能是通过一些编译器魔法完成的,这就是为什么它是一个关键字<代码> STD::函数,C++中最接近的委托,是作为一个库完成的,可以用用户代码编写。我不认为还有什么要说的about@Ron-我真的在努力更好地理解这两种语言以及它们是如何工作的。当引擎盖下有“魔法”时,我总是感到好奇。我将检查前面几次提到的std::函数,看看它会带我去哪里。再次感谢您的反馈=)