-2

静的クラス メンバー関数をインスタンス化する必要がないことはわかっています。しかし、クラス メンバー関数の操作は常に独自のメンバー変数に基づいているため、なぜ静的メンバー関数を使用するのでしょうか? 誰かがいくつかの詳細な例で教えてもらえますか? 前もって感謝します。

PS私は、1つのクラスメンバー関数で2つのスレッドを作成するプログラムを作成しているため、2つのスレッドを作成するときにスレッドコールバック関数のアドレスを渡す必要があります。スレッドのコールバック関数も同じクラスのメンバー関数にしたい。いくつかの参考文献によると、コールバック関数がクラスのメンバーである場合、それは静的でなければなりません。質問があります。静的コールバックでは、同じクラス内の他の非静的関数を呼び出すことはできず、その非静的メンバー変数を変更することもできません。(英語は私の第 2 言語なので、苦手です。もっと簡潔に説明してくれると助かります :-)

4

1 に答える 1

2

例を挙げます。クラスについて宣言したインスタンスの数を計算したい場合は、次のような静的メンバーを持つことができます

int instance_count;

クラス コンストラクターでは、次のように instance_count を追加できます。

instance_count++;

そしてあなたのデストラクタで:

instance_count--;

その結果、現在プログラム内にあるインスタンスの数を取得できます。

于 2013-11-15T05:46:28.323 に答える