0

のメンバー関数が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++ のメンバー関数が厳密に必要な場合 (割り込みサービス ルーチンの場合のように)、どうすればよいでしょうか?

私が間違っているか、コンセプトが欠けているか教えてください。

4

2 に答える 2

1

You probably mean a static function like so;

class Object {
public:
    static void function() {}
};
于 2015-03-05T08:02:53.293 に答える