たとえば、C# を考えると
C または C++ の関数ポインターとは異なり、デリゲートはオブジェクト指向であり、タイプ セーフであり、セキュリティで保護されています。
ソース: http://msdn.microsoft.com/en-us/library/aa288459%28v=vs.71%29.aspx
C++ だけについて話しますが、本当の違いは何ですか?また、OO の見込み客に欠けているものは何ですか?
また、別の情報源から
ほとんどの C++ プログラマーはメンバー関数ポインターを使用したことがなく、それには正当な理由があります。それらには独自の奇妙な構文 (たとえば、 ->* および .* 演算子) があり、それらに関する正確な情報を見つけるのは難しく、それらで実行できるほとんどのことは、他の方法でより適切に実行できます。これはちょっとスキャンダラスです: 実際には、コンパイラの作成者にとって、メンバー関数ポインターを実装するよりも、適切なデリゲートを実装する方が簡単です!
ソース: http://www.codeproject.com/Articles/7150/Member-Function-Pointers-and-the-Fastest-Possible
C++ の多くのプログラムがこの->*
構文を使用していることがわかりますが、これが奇妙または奇妙であるとは思いません。デリゲートとポインターへの攻撃について、この可能性についての要点がわかりません。