C++のclassclassクラス型(C++) を定義するためのキーワード。 classstruct で定義される型はどちらもクラス型(C++)であり、class ではメンバと基底クラスのデフォルトのアクセス指定子private になる。

クラス型(C++)は、データとそれを操作する関数をひとまとめにできるユーザー定義型である。

定義の書式

class ClassName : access-specifier BaseName
{
private:
    // データメンバ
 
protected:
    // 派生クラスから使うメンバ
 
public:
    // コンストラクタ
    // メンバ関数
};

継承しない場合は : access-specifier BaseName を省略できる。 private:protected:public: は必要に応じて配置する。 クラス定義は宣言の一種であるため、定義の末尾には ; が必要である。

オブジェクトの作成

class で定義した型のオブジェクトも、ほかのクラス型(C++)と同じく、選んだ初期化形式に従って初期化される。

struct との違い

クラスと構造体の違い(C++) を参照。

class Battery
{
private:
    float energy_ {};
 
public:
    Battery(float energy)
        : energy_ { energy }
    {
    }
 
    float energy() const
    {
        return energy_;
    }
};
 
int main()
{
    Battery pack { 0.9f };
    float remaining { pack.energy() };
}

関連

参考