TECH I.S.

C++アクセス指定子


アクセス指定子

ここまでで、すべてのクラス例で登場するpublicキーワードにはすっかり慣れたでしょう。

class MyClass {  // The class   <strong>public:</strong>        // Access specifier     // class members goes here };

publicキーワードはアクセス指定子です。アクセス指定子は、クラスのメンバー (属性やメソッド) にアクセスする方法を定義します。上記の例で、メンバーはpublicになっています、これはコードの外部からアクセスして変更できることを意味します。

しかし、メンバーを非公開にして外の世界から隠したい場合はどうすればよいでしょうか?

C++には、次の3つのアクセス指定子があります。

  • public- メンバーはクラス外からアクセス可能
  • private- メンバーにアクセスできません (またはクラスの外から
  • protected- メンバはクラスの外からアクセスすることはできませんが、継承されたクラスではアクセスすることができます。継承については後で詳しく説明します。

次の例では、publicprivateメンバーの違いを説明します。

class MyClass {   <strong>public:</strong>    // Public access specifier     int x;   // Public attribute   <strong>private:</strong>   // 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 };


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細