Udostępnij za pośrednictwem


Klasy abstrakcyjne (C++)

Klasy abstrakcyjne działa jako wyrażenia ogólnych pojęć, z których mogą być uzyskane bardziej szczegółowych klas.Nie można utworzyć obiektu typu klasy abstrakcyjnej; jednak można użyć wskaźników i odwołania do typu klasy abstrakcyjne.

Klasa, która zawiera co najmniej jedną funkcję wirtualną czystego uważa się za klasy abstrakcyjnej.Klasy pochodzące od klasy abstrakcyjnej należy zaimplementować funkcję wirtualną czystej lub zbyt, są one, klasy abstrakcyjne.

Funkcję wirtualną jest zadeklarowany jako "czyste" za pomocą czystego specyfikatora składni (opisane w Klasy implementacji protokołu).Rozważmy przykład, przedstawione w Funkcje wirtualnych.Zamiarem klasy Account jest dostarczenie ogólnych funkcji, ale obiekty typu Account są zbyt ogólne, aby być użyteczne.W związku z tym Account jest dobrym kandydatem do klasy abstrakcyjnej:

// 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;
};

Jedyną różnicą między tej deklaracji i poprzedni jest, że PrintBalance jest zadeklarowana z czystego specyfikatora (= 0).

Zobacz też

Informacje

Klasy pochodne