見出し画像

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;
}

この例では、accountBalanceBankAccountクラスのプライベートメンバーです。クラス外部から直接アクセスすることはできず、パブリックメソッドsetBalanceおよびgetBalanceを通じてアクセスされます。

カプセル化の利点

  • 制御: カプセル化により、データの使用方法を制御できます。

  • セキュリティ: プライベートメンバーを使って実装の詳細を隠すことができます。

  • 柔軟性と保守性: クラスの内部実装を変更しても、そのインターフェースは変更されないため、保守や拡張が容易になります。

結論

C++におけるカプセル化は、データとメソッドへのアクセスを制御することで、セキュリティとデータの整合性を高めます。この原則は単にデータを保護するだけでなく、アプリケーションのモジュラー設計にも貢献し、理解や使用を簡素化します。

次回のパート4では、C++での抽象化の概念について探り、オブジェクト指向プログラミングの理解をさらに深めます。

                                                 エンジニアファーストの会社 株式会社CRE-CO
                            su_myat_phyu

参考

Object Oriented Programming in C++ : 

C++ Object Oriented Programming : 


いいなと思ったら応援しよう!