třída (C++)
Klíčové slovo class deklaruje typ třídy nebo definuje objekt typu třídy.
[template-spec] class [ms-decl-spec] [tag [: base-list ]]
{
member-list
} [declarators];
[ class ] tag declarators;
Parametry
template-spec
Volitelné specifikace šablony.Další informace naleznete v tématu Specifikace šablony.class
Klíčové slovo class.ms-decl-spec
Volitelná specifikace paměťové třídy.Další informace naleznete v klíčovém slově __declspec.tag
Název typu daný třídě.Značka se v rámci rozsahu změní na vyhrazené slovo.Značka je volitelná.Pokud je tento argument vynechán, je definována anonymní třída.Další informace naleznete v tématu Typy anonymních tříd.base-list
Volitelný seznam tříd nebo struktur, ze kterých tato třída získá svoje členy.Další informace naleznete v tématu Třídy Base.Každý název základní třídy nebo struktury může být uvozen specifikátorem přístupu (public, private, protected) a klíčovým slovem virtual.Další informace viz tabulka pro přístup členů Řízení přístupu ke členům třídy.member-list
Seznam členů třídy.Další informace naleznete v tématu Členy třídy.declarators
Deklarační seznam určující názvy jedné nebo více instancí typu třídy.Deklarátory mohou obsahovat inicializační seznamy, pokud jsou všechny datové členy třídy public.Toto je běžnější ve strukturách, než v třídách, jejichž datoví členové jsou ve výchozím nastavení public.Další informace naleznete v tématu Přehled deklarátorů.
Poznámky
Další informace o třídách obecně naleznete v následujících tématech:
Informace o spravovaných třídách a strukturách naleznete v tématu Třídy a struktury
Příklad
// 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;
}