C ++アクセス指定子
アクセス指定子
public
これで、すべてのクラスの例に表示されるキーワードに精通しているはずです。
例
class MyClass { // The class
public: // Access specifier
// class members goes here
};
public
キーワードはアクセス指定子です。
アクセス指定子は、クラスのメンバー(属性とメソッド)にアクセスする方法を定義します。上記の例では、メンバーはpublic
-です。これは、コードの外部からアクセスおよび変更できることを意味します。
しかし、メンバーをプライベートにして外の世界から隠したい場合はどうでしょうか。
C ++には、次の3つのアクセス指定子があります。
public
-メンバーはクラス外からアクセスできますprivate
-クラス外からメンバーにアクセス(または表示)することはできませんprotected
-メンバーはクラスの外部からアクセスできませんが、継承されたクラスでアクセスできます。継承については後で詳しく説明します。
public
次の例では、とprivate
メンバーの違いを示しています。
例
class
MyClass {
public: // Public access
specifier
int x; // Public attribute
private: // Private access specifier
int y; // Private attribute
};
int main() {
MyClass
myObj;
myObj.x = 25; // Allowed (public)
myObj.y = 50; //
Not allowed (private)
return 0;
}
プライベートメンバーにアクセスしようとすると、エラーが発生します。
error: y is private
注:同じクラス内のパブリックメソッドを使用して、クラスのプライベートメンバーにアクセスすることができます。これを行う方法については、次の章(カプセル化)を参照してください。
ヒント:クラス属性をプライベートとして宣言することをお勧めします(できるだけ頻繁に)。これにより、自分自身(または他の人)がコードを台無しにする可能性が低くなります。これは、カプセル化の概念の主要な要素でもあり 、次の章で詳しく説明します。
注:デフォルトではprivate
、アクセス指定子を指定しない場合、クラスのすべてのメンバーは次のようになります。
例
class
MyClass {
int x; // Private attribute
int y; // Private attribute
};