класс (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
Необязательный список классов или структур этот класс был производным из его элементов.Дополнительные сведения см. в разделе Базовые классы.Каждое имя базового класса или структуры может предшествовать описателем доступа (Открытый" private" protected) и Виртуальный ключевое слово.См. таблицу в доступа к членам Управление доступом к членам класса для получения дополнительных сведений.member-list
Список членов класса.Для получения дополнительных сведений см. Члены класса.declarators
Списке декларатора указав имена одного или нескольких экземпляров типа класса.Деклараторы могут содержать списки инициализатора, если все члены данных класса 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;
}