c#/c++;成员函数指针 >P>是否可以将C++中的委托函数存储在C++中?
委托如何在不了解实例类的情况下完成对象实例、memberFuncPtr对和调用 (注意:当我试图理解发布者/订阅者代码设计中的事件/委托时,出现了这个问题) 我读到: C++需要一个类类型的知识,例如CLSASTYPE::*函数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
C代表允许SeaDeave++CysExcase.MefFunc< P>有一种类型叫做
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::函数,看看它会带我去哪里。再次感谢您的反馈=)