class (C++)

Ключевое слово class объявляет тип класса или определяет объект типа класса.

Синтаксис

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

Параметры

спецификация шаблона
Необязательные спецификации шаблона. Дополнительные сведения см. в разделе "Шаблоны".

class
ключевое слово class;

ms-decl-spec
Необязательная спецификация класса хранения. Дополнительные сведения см. в __declspec ключевое слово.

tag
Имя типа, присваиваемое классу. Этот параметр tag становится зарезервированным ключевым словом в области класса. Тег является необязательным. Если он опущен, определяется анонимный класс. Дополнительные сведения см. в разделе "Типы анонимных классов".

base-list
Необязательный список классов или структур, от которых этот класс будет наследовать члены. Дополнительные сведения см. в разделе "Базовые классы ". Перед каждым базовым классом или именем структуры может предшествовать описатель доступа (общедоступный, частный, защищенный) и виртуальный ключевое слово. Дополнительные сведения см. в таблице доступа к члену в разделе "Управление доступом к членам класса".

список участников
Список членов класса. Дополнительные сведения см. в обзоре члена класса.

declarators
Список деклараторов, в котором указываются имена одного или нескольких экземпляров типа класса. Деклараторы могут включать списки инициализаторов, если все члены данных класса public. Это более распространено в структурах, члены данных которых по public умолчанию, чем в классах. Дополнительные сведения см. в обзоре деклараторов .

Замечания

Дополнительные сведения о классах в целом см. в следующих разделах:

Сведения об управляемых классах и структурых в C++/CLI и C++/CX см. в разделе "Классы и структуры"

Пример

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

#include <iostream>
#include <string>
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;
}

См. также

Ключевые слова
Классы и структуры