C ++クラスのカプセル化|クラスのカプセル化

C ++パブリックインターフェイスとプライベート実装の分離

C ++は、クラスを介したカプセル化を実装します。これらのデータに関連するデータと操作は、クラスにカプセル化されます。言い換えると、クラスの役割は、ユーザーが宣言した抽象データ型にデータとアルゴリズムをカプセル化することです。クラスが宣言された後、ユーザーは主に、パブリックメンバー関数を呼び出すことにより、クラスによって提供される関数を実装します

C ++パブリックメンバー関数は、ユーザーが使用するクラスのパブリックインターフェイスまたはクラスの外部インターフェイスです。もちろん、すべてのメンバー関数をパブリックとして指定する必要はありませんが、これらのメンバー関数はパブリックインターフェイスではありません。

プライベートデータメンバーはC ++クラスの外部から直接アクセスすることはできませんが、パブリックメンバー関数を呼び出すことでプライベートデータメンバーを参照または変更することもできます。ユーザーはパブリックメンバー関数を呼び出して特定の関数を実行できます。これらの関数は、クラスの宣言時に指定されます。ユーザーはそれらを使用でき、変更しないでください。

実際、ユーザーはこれらの関数の実装方法の詳細を気にしないことがよくありますが、どの関数を呼び出すことによってどのような結果が得られ、どの関数を実行できるかを知る必要があるだけです。

メンバー関数を介してデータメンバーを操作するC ++は、クラス実装と呼ばれます。ユーザーがパブリックメンバー関数を任意に変更したり、データの操作を変更したりできないようにするために、ユーザーはパブリックメンバー関数のソースコードを表示できないことが多く、明らかに変更できません。ユーザーパブリックメンバー関数のオブジェクトコードにのみアクセスできます。

クラスで操作されるデータはプライベートであり、実装の詳細はユーザーから隠されます。この実現はプライベート実現と呼ばれます。パブリックインターフェイスの分離とクラスのプライベート実現は情報の隠蔽を形成します。

クラスの関数を変更または拡張する場合は、このクラスの関連データメンバーとそれに関連するメンバー関数のみを変更する必要があり、プログラム内のクラス外の部分を変更する必要はありません。
コンパイル時にクラス内のデータの読み取りと書き込みでエラーが見つかった場合は、プログラム全体をチェックする必要はありません。これらのデータにアクセスするこのクラスのいくつかのメンバー関数をチェックするだけです。

C ++クラスのメンバー関数は、オブジェクト指向プログラミング理論ではメソッドと呼ばれます。メソッドはデータの操作を参照します。メソッドは操作に対応します。パブリックメソッドとして宣言されたメソッドのみが、の外部からアクティブ化できます。オブジェクト。関連するメソッドを呼び出すコマンド。

ケース:C ++はクラスを使用します。

#include<iostream>//预处理
using namespace std;//命名空间 
class Time
{
    
    
  public: //声明以下是公用的
    int day;
    int hour;
    int minute; 
};
int main()//主函数 
{
    
    
  Time time1;//定义time1为Time类对象
  cout<<"输入天:"<<endl; 
  cin>>time1.day;
  cout<<"输入小时:"<<endl;
  cin>>time1.hour;
  cout<<"输入分钟:"<<endl;
  cin>>time1.minute;
  cout<<"写这篇文章是"<<time1.day<<"号,";
  cout<<time1.hour<<"点:";
  cout<<time1.minute<<"分"<<endl;
  return 0; //函数返回值为0; 
}

結果をコンパイルして実行します。

输入天:
21
输入小时:
20
输入分钟:
38
写这篇文章是21号,20点:38--------------------------------
Process exited after 9.871 seconds with return value 0
请按任意键继续. . .

上記を読んで、それがあなたに役立つと思うなら、Xiaolinに褒め言葉を与えてください。Xiaolinも更新する動機を持っています。お父さんと村人に感謝します
〜C ++カプセル化の
より多くのケースは公開アカウントに行くことができます:C言語エントリ主人

おすすめ

転載: blog.csdn.net/weixin_48669767/article/details/113064118