klasa abstrakcyjna

0

Czy jeżeli w C++ mamy klasę abstrakcyjną ( z co najmniej jedną funkcją pure virtual ) to czy taka klasa może zawierać konstruktor? Jeżeli tak, to czy jest on całkowicie zbędny? Bowiem nie możemy mieć obiektu takiej klasy.

2
  1. Nie ten dział.
  2. Nie jest zbędny, bo klasa abstrakcyjna może zawierać pola i met. nieabstrakcyjne. Obiektu nie możesz stworzyć właśnie dlatego, że zawiera tę metodę abstrakcyjną, bez implementacji. Ale "obiekt" klasy abstrakcyjnej jest zawsze tworzony jako część klasy pochodnej(bo klasa pochodna musi mieć dostęp do nieabstrakcyjnych pól klasy abstrakcyjnej). W klasie nadrzędnej zawsze wywoływany jest konstruktor - domyślny, jeżeli nie zaimpelementujesz innego i go nie wywołasz przez super().

1 użytkowników online, w tym zalogowanych: 0, gości: 1