C++におけるオブジェクト指向プログラミング Part III
カプセル化 (Encapsulation) とは何か?
カプセル化とは、データ(属性)とそれに作用するメソッド(関数)を一つの単位、つまりクラスにまとめること、およびオブジェクトの一部のコンポーネントへの直接アクセスを制限するプロセスです。これにより、誤った操作やメソッドの誤用を防ぎます。
C++におけるカプセル化の実装
C++では、クラス内のアクセス指定子を使用してカプセル化を実現します:
private(プライベート):メンバーはクラス内部からのみアクセス可能。
public(パブリック):メンバーはクラスの外部からアクセス可能。
protected(プロテクテッド):メンバーはクラス内部および派生クラスのインスタンスからアクセス可能。
カプセル化されたクラスの例:
class BankAccount
{
private:
int accountBalance; // プライベート属性
public:
void setBalance(int b)
{ // 残高を設定するパブリックメソッド
if (b >= 0) accountBalance = b;
}
int getBalance()
{ // 残高を取得するパブリックメソッド
return accountBalance;
}
};
int main()
{
BankAccount myAccount;
myAccount.setBalance(100);
cout << "Account Balance: " << myAccount.getBalance();
return 0;
}
この例では、accountBalanceはBankAccountクラスのプライベートメンバーです。クラス外部から直接アクセスすることはできず、パブリックメソッドsetBalanceおよびgetBalanceを通じてアクセスされます。
カプセル化の利点
制御: カプセル化により、データの使用方法を制御できます。
セキュリティ: プライベートメンバーを使って実装の詳細を隠すことができます。
柔軟性と保守性: クラスの内部実装を変更しても、そのインターフェースは変更されないため、保守や拡張が容易になります。
結論
C++におけるカプセル化は、データとメソッドへのアクセスを制御することで、セキュリティとデータの整合性を高めます。この原則は単にデータを保護するだけでなく、アプリケーションのモジュラー設計にも貢献し、理解や使用を簡素化します。
次回のパート4では、C++での抽象化の概念について探り、オブジェクト指向プログラミングの理解をさらに深めます。
エンジニアファーストの会社 株式会社CRE-CO
su_myat_phyu
参考
Object Oriented Programming in C++ :
C++ Object Oriented Programming :