Člen třídy Syntaxe deklarace
Datové členy třídy a funkce jsou obecně deklarován pravidel pro prohlášení.Skládají se z, v tomto pořadí:
Specifikátory prohlášení.Tříd, třídy úložiště specifikátory statické a proměnlivých pro datové členy jsou povoleny.Cv kvalifikátory const a volatile pro data a funkce členů jsou povoleny.Specifikátory prohlášení friend, statické, virtuální a vložené jsou povoleny funkce, ačkoli friend označuje třetí funkce.
Declarators bez Inicializátory.Z virtuálních funkcí čistého specifikátor formuláře = 0 se po declarator funkce používá k určení čistého virtuální funkce (virtuální funkce bez implementace v této třídě).
Volitelně bit pole.Viz Bit pole.
NEBO
- Definice funkce.Definice funkce mohou být součástí třídy.Pokud členské funkce je definována tak, předpokládá se automaticky vložené.
NEBO
- Člen šablony (viz poznámky na člena šablony jazyka C++ v Členy třídy šablon).
Data členů nelze deklarovat jako automaticky, extern, nebo zaregistrovat třídy úložiště.Může však být deklarován jako s statické třídy úložiště.
Když deklarujete friend třídy v seznamu členů, můžete vynechat declarator seznam členů.Další informace o přátele, viz specifikátoru friend a Přátelé.I když nebyla zavlečena název třídy lze použít v friend prohlášení.Tento friend prohlášení uvádí název.Však v deklarace člena pro tyto třídy, syntaxe specifikátor typu propracována musí být použita, jak ukazuje následující příklad:
// class_member_declaration_syntax.cpp
// compile with: /c
struct HasFriends {
friend class NotDeclaredYet;
};
V předchozím příkladu neexistuje seznam členských declarator po deklaraci třídy.Protože prohlášení pro NotDeclaredYet má dosud zpracován, se používá formulář specifikátor typu propracována: class NotDeclaredYet.Lze určit typ, která byla deklarována friend prohlášení člena pomocí specifikátoru normální typ:
// class_member_declaration_syntax2.cpp
// compile with: /c
struct AlreadyDeclared {};
struct HasFriends {
friend AlreadyDeclared;
};
Čistý specifikátor (viz následující příklad) označuje, že virtuální funkce, které byly prohlášeny jako zadána žádná implementace.Specifikátor čistého proto může být zadán pouze na virtuální funkce.Vezměme si jako příklad:
// class_member_declaration_syntax3.cpp
// compile with: /c
class StrBase { // Base class for strings.
public:
virtual int IsLessThan( StrBase& ) = 0;
virtual int IsEqualTo( StrBase& ) = 0;
virtual StrBase& CopyOf( StrBase& ) = 0;
};
Předcházející kód deklaruje základní třídy – je určen k použití pouze jako základní třída pro konkrétní třídy třídy.Tyto základní třídy lze vynutit určitý protokol nebo sada funkcí prohlášením "čisté" virtuální funkce pomocí specifikátoru čistého jednu nebo více virtuálních funkcí.
Třídy, které dědí z StrBase třídy musí poskytnout implementace čistého virtuálních funkcí; jinak, příliš, jsou považovány za abstraktní základní třídy.
Základní abstraktní třídy nelze deklarovat objekty.Například před objekt typu zděděné z StrBase mohou být deklarovány, funkce IsLessThan, IsEqualTo, a CopyOf musí být zavedeny.(Další informace o abstraktní základní třídy, viz Abstraktní třídy.)