class | Programming Place Plus 用語集

トップページ用語集

名称 🔗

解説 🔗

オブジェクト指向プログラミング言語において、クラスに関連した意味をもつキーワードです。

C++ の場合

C++ では、クラスやクラステンプレートを定義するときに使用されるほか、識別子の手前に置いて、それがクラス型の名前であることを明示する効果を持ちます。

class Color {
public:
    Color(unsigned char red, unsigned char green, unsigned char blue)
    {
        m_red = red;
        m_green = green;
        m_blue = blue;
    }

    // ...

private:
    unsigned char m_red;
    unsigned char m_green;
    unsigned char m_blue;
};

// クラス型の変数color を宣言
// ただし、この場合の class は省略可能。
class Color color;

C++ では、structキーワードで定義する構造体と、classキーワードで定義するクラスには実質的な違いはないため、どちらを使うこともできます(違いはデフォルトアクセス指定子のみ)。

詳細は、新C++編「クラス」のページを参照してください。

テンプレート仮引数やテンプレートテンプレート仮引数を記述するときにも使用されます。この用途では struct は使えません。

template <class T>
T add(T a, T b)
{
    return a + b;
}


template <typename T, template <typename T, typename Allocator = std::allocator<T>> class Container>
class C {
public:
    // ...

private:
    struct Data {
        T a {};
        int b {};
        int c {};
    };

    Container<Data> m_data;
};

詳細は、新C++編「クラステンプレート」のページを参照してください。

また、scoped enum を定義するときに用いることもできます。この場合も structキーワードが使えます。

enum class CardMark {
    spade,
    club,
    diamond,
    heart,
};

詳細は、新C++編「列挙型」のページを参照してください。


参考リンク 🔗

更新履歴 🔗


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る