のメンバー関数がclass X
あり、それがX f()
のオブジェクトを返し、class X
引数を取らないとします。
したがって、 のオブジェクトによって呼び出された場合、 がオブジェクトであるとしclass X
ますX obj
。
したがって、 を呼び出すとobj.f()
、C++ の規則に従って、秘密の引数が関数に渡されf()
ます。this
これは、 を呼び出すオブジェクトのアドレスを含むオブジェクトのポインターですf()
。
したがって、私の混乱は、C++ によってどのように管理されるかです。これは、秘密の引数が毎回渡されるため、C++ では引数をまったく持たないメンバー関数を持つことができないことを意味するためです。
引数 say を持つ関数の場合、func(int a)
実際には 2 つの引数を取ることができる関数であり、引数の 1 つは秘密の引数 (this
ポインター) であり、もう 1 つはint a
です。
では、引数をまったく持たない C++ のメンバー関数が厳密に必要な場合 (割り込みサービス ルーチンの場合のように)、どうすればよいでしょうか?
私が間違っているか、コンセプトが欠けているか教えてください。