protected
次のように、静的クラス関数を持つコードに出くわしました。
class C {
...
protected:
static int fun() { ... }
};
静的クラス関数がアクセス修飾子を持つことができるかどうかに興味がありましたが、それはどういう意味ですか? それらはクラス グローバルであり、事前インスタンスではないためです。
ありがとう、ボダ・シド。
protected
次のように、静的クラス関数を持つコードに出くわしました。
class C {
...
protected:
static int fun() { ... }
};
静的クラス関数がアクセス修飾子を持つことができるかどうかに興味がありましたが、それはどういう意味ですか? それらはクラス グローバルであり、事前インスタンスではないためです。
ありがとう、ボダ・シド。
C++ のアクセス修飾子は、インスタンスごとには機能しません。それらは常にクラスごとに機能します。それがいつものやり方です。これにより、それらを静的メンバーにも適用することが完全に論理的になります。
C++ でのアクセス保護がインスタンスごとに何らかの形で機能するはずであるというのは、かなり一般的な誤解であり、それがあなたの質問にも影響を与えたようです。
それは依然として同じ目的を果たします: 派生クラスだけがその静的関数を呼び出すことができます。
これは、保護されていることを意味します。静的関数は、そのクラスの他のメンバー関数または派生クラスのメンバー関数からアクセスできます。