1

クラスでメンバー変数を宣言できprivate staticますが、それはどういう意味ですか?

違いprivate staticpublic staticメンバー変数は何ですか?

4

4 に答える 4

4

これは、これらの変数には、クラス自体以外の場所ではアクセスできないことを意味します。

publicメンバーはクラス外からアクセスできます。
protectedメンバーはクラス内でアクセスでき、その派生クラスと
privateメンバーはクラス内でのみアクセスできます。

static同じアクセス仕様ルールであるかどうかにかかわらず、メンバーがそれに適用されることに注意してください。
staticストレージ仕様を意味し、一部のメンバーはクラスのすべてのインスタンスで共有され、メンバーにアクセスできる場所は変更されません。

良い読み物:

アクセス指定子とは何ですか?プライベート、保護、またはパブリックで継承する必要がありますか?

于 2012-06-17T09:22:56.340 に答える
2

変数とは、宣言されているクラスのスコープ内でのみアクセスできることを意味します。privateつまり、クラスの外部で宣言されている関数は、プライベート変数にアクセス(読み取りまたは書き込み)できません。

変数をとして宣言staticするということは、そのクラスのすべてのインスタンスで同じ値を保持することを意味します。

于 2012-06-17T09:23:43.513 に答える
1

と呼ばれる静的なintメンバーを持つクラスAがあるとします。

    class A {
        public:
        static int a;
    };

そして、あなたが使用するのと同じように、あなたのメイン関数からこれにアクセスするとしましょう

   int new_variable = A::a;

アクセス指定子はパブリックであるため、これは正常に機能します。

次に、パブリックからプライベート(または保護)に変更します。プライベートメンバーにはクラス自体からのみアクセスできるため、コードはコンパイルされません。

于 2012-06-17T09:32:29.580 に答える
1

private情報を非表示にし( )、オブジェクト変数の代わりにクラス変数を使用する必要がある場合は、これを実行することをお勧めします( static

于 2012-06-17T09:25:44.530 に答える