c#中的委托与c ++中的函数指针有什么区别?

可能重复:
c#中有函数指针吗?

我有兴趣找到C#中的委托和C ++中的函数指针之间的区别。

C#中的委托是一个带有内置迭代器的类型安全函数指针。

它保证指向具有指定签名的有效函数(与C不同,其中指针可以转换为指向谁知道什么)。 它还支持迭代多个绑定函数的概念。

在C#中,委托是多播的,这意味着它们可以迭代多个函数。 例如:

class Program { delegate void Foo(); static void Main(string[] args) { Foo myDelegate = One; myDelegate += Two; myDelegate(); // Will call One then Two } static void One() { Console.WriteLine("In one.."); } static void Two() { Console.WriteLine("In two.."); } } 

C#中的代理可以是同步代理,也可以是异步代理; 除非您编写自己的multithreadingfunction,否则C ++函数指针是同步的。

C / C ++中的指针不需要引用一个完整的对象。 C有函数指针,没有面向对象的语言支持。 代表是真正的function对象。