class (C++)

class キーワードは、クラス型を宣言したり、クラス型のオブジェクトを定義したりします。

[template-spec] class [ms-decl-spec] [tag [: base-list ]]
{
   member-list 
} [declarators];
[ class ] tag declarators;

パラメーター

  • template-spec
    テンプレートの指定 (省略可能)。 詳細については、「テンプレートの仕様」を参照してください。

  • class
    class キーワード。

  • ms-decl-spec
    ストレージ クラスの指定 (省略可能)。 詳細については、__declspec キーワードを参照してください。

  • tag
    クラスに渡す型名。 タグは、クラスのスコープ内で予約語になります。 タグは省略できます。 省略した場合、匿名クラスが定義されます。 詳細については、「匿名クラス型」を参照してください。

  • base-list
    このクラスがメンバーを継承するクラスまたは構造体のリスト (省略可能)。 詳細については、「基本クラス」を参照してください。 各基底クラスまたは構造体の名前の前には、アクセス指定子 (publicprivateprotected) および virtual キーワードを付けることができます。 詳細については、「クラス メンバーへのアクセスの制御」のメンバー アクセスの表を参照してください。

  • member-list
    クラス メンバーのリスト。 詳細については、「クラス メンバー」を参照してください。

  • declarators
    クラス型の 1 つ以上のインスタンスの名前を指定する宣言子リスト。 宣言子には、クラスのすべてのデータ メンバーが public である場合、初期化子リストが含まれる場合があります。 これは、クラスよりも、データ メンバーが既定で public である構造体で、より一般的です。 詳細については、「宣言の概要」を参照してください。

解説

一般的なクラスの詳細については、次のトピックのいずれかを参照してください。

マネージ クラスと構造体の詳細については、「クラスと構造体」を参照してください。

使用例

// class.cpp
// compile with: /EHsc
// Example of the class keyword
// Exhibits polymorphism/virtual functions.

#include <iostream>
#include <string>
#define TRUE = 1
using namespace std;

class dog
{
public:
   dog()
   {
      _legs = 4;
      _bark = true;
   }

   void setDogSize(string dogSize)
   {
      _dogSize = dogSize;
   }
   virtual void setEars(string type)      // virtual function
   {
      _earType = type;
   }

private:
   string _dogSize, _earType;
   int _legs;
   bool _bark;

};

class breed : public dog
{
public:
   breed( string color, string size)
   {
      _color = color;
      setDogSize(size);
   }

   string getColor()
   {
      return _color;
   }

   // virtual function redefined
   void setEars(string length, string type)
   {
      _earLength = length;
      _earType = type;
   }

protected:
   string _color, _earLength, _earType;
};

int main()
{
   dog mongrel;
   breed labrador("yellow", "large");
   mongrel.setEars("pointy");
   labrador.setEars("long", "floppy");
   cout << "Cody is a " << labrador.getColor() << " labrador" << endl;
}

参照

関連項目

C++ キーワード

クラス、構造体、および共用体