C++を勉強中なんだけど、メンバ関数ポインタとデリゲートの違いがよく分からない。

http://www7b.biglobe.ne.jp/~robe/pf/pf016.html
ここによると、特定のクラスに依存せずオブジェクトも保持できるように書いてるけど、
templateや、安全面には気を使うという前提でvoid*を使うとかで依存させずに
オブジェクトはメンバ変数で持つとかで対応できるような気がする。

JavaやC#で実装されてるので何かしら便利だと思うんですが何か違いがあるんですか?