Sdílet prostřednictvím


Abstraktní třídy (C++)

Abstraktní třídy působí jako výrazy obecných konceptů, ze kterých mohou být odvozeny konkrétnější třídy.Nelze vytvořit objekt typu abstraktní třídy; můžete však použít ukazatele a odkazy na abstraktní typy tříd.

Třída, která obsahuje alespoň jednu prázdnou virtuální funkci, je považována za abstraktní třídu.Třídy odvozené od abstraktní třídy musí implementovat čistě virtuální funkce, nebo jsou také abstraktní třídy.

Virtuální funkce je deklarována jako „pure“ pomocí syntaxe specifikátoru pure (popsáno v části Implementace protokolu třídy).Zvažte příklad uvedený v části Virtuální funkce.Záměrem třídy Account je poskytnout obecné funkce, ale objekty typu Account jsou příliš obecné, než aby byly užitečné.Proto je Account vhodným kandidátem pro abstraktní třídu:

// deriv_AbstractClasses.cpp
// compile with: /LD
class Account {
public:
   Account( double d );   // Constructor.
   virtual double GetBalance();   // Obtain balance.
   virtual void PrintBalance() = 0;   // Pure virtual function.
private:
    double _balance;
};

Jediný rozdíl mezi předchozí a touto deklarací je, že PrintBalance je deklarován s čistým specifikátorem (= 0).

Viz také

Referenční dokumentace

Odvozená třída