C++カプセル化
カプセル化
カプセル化の意味、「機密」データがユーザーから隠せるようにすることです。これを実現するには、クラス変数や属性をprivate(外部からアクセス出来ない)と宣言しなければならない。他のユーザーがプライベート メンバーの値を読み取ったり変更したりできるようにする場合は、publicなgetメソッドやsetメソッドを用意します。
プライベートメンバーへのアクセス
プライベートアトリビュートにアクセスするには、パブリックな「get」および「set」メソッドを使用します。
例
#include <iostream>
using namespace std;
class Employee {
private:
// Private attribute
int salary;
public:
// Setter
void setSalary(int s) {
salary = s;
}
// Getter
int getSalary() {
return salary;
}
};
int main() {
Employee myObj;
myObj.setSalary(50000);
cout << myObj.getSalary();
return 0;
}
例の説明
salary属性はprivateであり、アクセスが制限されています。
public setSalary()メソッドはパラメータ (s)を取りsalary属性 (salaly = s)に割り当てます。
public getSalary()メソッドはprivatesalary属性の値を返します。main() の内部で、Employee クラスのオブジェクトを作成します。ここで、setSalary() メソッドを使用して、private属性の値を50000に設定します。次に、オブジェクトのgetSalary()メソッドを呼び出して、値を返します。
カプセル化する理由
-クラスの属性は(できる限り頻繁に)privateと宣言するのがよい習慣とされている。カプセル化することで、データをより適切に管理できるようになります。
データのセキュリティが向上する
-データのセキュリティの向上