C ++ Abstract Klasse: Konstruktor ja oder nein?
Eine Klasse mit einer (oder mehreren) virtuellen reinen Funktionen ist abstrakt und kann nicht zum Erstellen eines neuen Objekts verwendet werden. Sie verfügt daher nicht über einen Konstruktor.
Ich lese ein Buch mit dem folgenden Beispiel:
class Employee {
public:
Employee(const char*, const char*);
~Employee();
const char* getFirstName() const;
const char* getLastName() const;
virtual double earnings() const=0 // pure virtual => abstract class
virtual void print() const
private:
char* firstName, lastName;
};
Wenn die Klasse abstrakt ist, warum haben wir einen Konstruktor? Diese Klasse wird später verwendet (Boss
ist öffentlich abgeleitet vonEmployee
):
void Boss::Boss (const char* first, const char* last, double s)
: Employee (first, last)