何故メンバ関数はどのインスタンスにもアクセスできるのか
メンバ関数は同クラスのどのインスタンスから呼ばれても、そのインスタンスを操作することができる。でも、メンバ関数には、どのインスタンスを操作するかという記述はない。
どうなってるの?
答え
C++ではクラスのインスタンスは、そのメンバ関数を呼び出すとき、暗黙的にインスタンスのアドレスを第1引数として渡している。
おおざっぱに言うと、Class::function(int a)がfunction(Class *this, int a)と同等のコードになる。
参考
DEBUG HACKSの72ページ