オブジェクト指向プログラミング言語において、クラスに関連した意味をもつキーワードです。
C++ では、クラスやクラステンプレートを定義するときに使用されるほか、識別子の手前に置いて、それがクラス型の名前であることを明示する効果を持ちます。
class Color {
public:
(unsigned char red, unsigned char green, unsigned char blue)
Color{
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 a, T b)
T add{
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 {};
};
<Data> m_data;
Container};
詳細は、新C++編「クラステンプレート」のページを参照してください。
また、scoped enum を定義するときに用いることもできます。この場合も structキーワードが使えます。
enum class CardMark {
,
spade,
club,
diamond,
heart};
詳細は、新C++編「列挙型」のページを参照してください。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
![]() |
管理者情報 | プライバシーポリシー |