C ++ Clase abstracta: constructor sí o no?
Una clase con una (o más) funciones virtuales puras es abstracta, y no se puede usar para crear un nuevo objeto, por lo que no tiene un constructor.
Estoy leyendo un libro que proporciona el siguiente ejemplo:
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;
};
Si la clase es abstracta ¿por qué tenemos un constructor? Utiliza esta clase más tarde (Boss
es público derivado deEmployee
):
void Boss::Boss (const char* first, const char* last, double s)
: Employee (first, last)