クラスを作る
クラスはデータと操作をまとめます。データを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>が必要です。
カプセル化する
外部から価格を直接変更できないようにすると、負の価格を防ぐなどのルールをクラス内に集められます。状態を変更するメソッドで条件を確認しましょう。
設計の考え方
- データメンバーは原則として
privateにする - クラスが守るルールをコンストラクターやメソッドで検証する
- 読み取り専用のメソッドには
constを付ける
練習
価格と在庫数を持つProductクラスを作り、負の値を受け付けないコンストラクターを実装してみましょう。
