C++

クラスとカプセル化

データと操作をまとめ、外部へ必要な機能だけを公開する方法を学びます。

C++入門の講座一覧

01

クラスを作る

クラスはデータと操作をまとめます。データをprivateにし、外部へ必要な操作だけをpublicで公開します。

ProductクラスC++
#include <iostream>
#include <string>
#include <utility>

class Product {
private:
    std::string name_;
    int price_;
public:
    Product(std::string name, int price) : name_{std::move(name)}, price_{price} {}
    void print() const { std::cout << name_ << ": " << price_ << "円\n"; }
};

int main() {
    Product product{"ノート", 180};
    product.print();
}
実行結果OUTPUT
ノート: 180円

初期化リストはメンバーを作成時に初期化します。std::moveには#include <utility>が必要です。

02

カプセル化する

外部から価格を直接変更できないようにすると、負の価格を防ぐなどのルールをクラス内に集められます。状態を変更するメソッドで条件を確認しましょう。

設計の考え方
  • データメンバーは原則としてprivateにする
  • クラスが守るルールをコンストラクターやメソッドで検証する
  • 読み取り専用のメソッドにはconstを付ける
03

練習

価格と在庫数を持つProductクラスを作り、負の値を受け付けないコンストラクターを実装してみましょう。