class (C++)class (C++)

classキーワードはクラス型を宣言またはクラス型のオブジェクトを定義します。The class keyword declares a class type or defines an object of a class type.

構文Syntax

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

パラメーターParameters

template-spectemplate-spec
テンプレートの指定 (省略可能)。Optional template specifications. 詳細についてを参照してくださいテンプレートします。For more information, refer to Templates.

classclass
classキーワード。The class keyword.

ms-decl-specms-decl-spec
ストレージ クラスの指定 (省略可能)。Optional storage-class specification. 詳細についてを参照してください、 _ _declspecキーワード。For more information, refer to the __declspec keyword.

タグtag
クラスに渡す型名。The type name given to the class. タグは、クラスのスコープ内で予約語になります。The tag becomes a reserved word within the scope of the class. タグは省略できます。The tag is optional. 省略した場合、匿名クラスが定義されます。If omitted, an anonymous class is defined. 詳細については、次を参照してください。匿名クラス型します。For more information, see Anonymous Class Types.

base-listbase-list
このクラスがメンバーを継承するクラスまたは構造体のリスト (省略可能)。Optional list of classes or structures this class will derive its members from. 参照してください基底クラスの詳細についてはします。See Base Classes for more information. 各基本クラスまたは構造体名の前に、アクセス指定子 (パブリックプライベート保護) および仮想キーワード。Each base class or structure name can be preceded by an access specifier (public, private, protected) and the virtual keyword. メンバー アクセス テーブルを参照してください。クラス メンバーへのアクセスの制御詳細についてはします。See the member-access table in Controlling Access to Class Members for more information.

member-listmember-list
クラス メンバーのリスト。List of class members. 参照してくださいクラス メンバーの概要詳細についてはします。Refer to Class Member Overview for more information.

declaratorsdeclarators
クラス型の 1 つ以上のインスタンスの名前を指定する宣言子リスト。Declarator list specifying the names of one or more instances of the class type. クラスのすべてのデータ メンバーがある場合、宣言子は初期化子リストを含めることができますpublicします。Declarators may include initializer lists if all data members of the class are public. これは、そのデータ メンバーは、構造の一般的なpublicよりも、既定でクラス。This is more common in structures, whose data members are public by default, than in classes. 参照してください概要の宣言子詳細についてはします。See Overview of Declarators for more information.

RemarksRemarks

一般的なクラスの詳細については、次のトピックのいずれかを参照してください。For more information on classes in general, refer to one of the following topics:

マネージ クラスと c++ 構造体について/cli および C++/cli CX を参照してくださいクラスと構造体For information on managed classes and structs in C++/CLI and C++/CX, see Classes and Structs

Example

// 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;
}

関連項目See also

キーワードKeywords
クラスと構造体Classes and Structs