C ++ Abstract Class: construtor sim ou não?
Uma classe com uma (ou mais) funções virtuais puras é abstrata, e não pode ser usada para criar um novo objeto, por isso não tem um construtor.
Eu estou lendo um livro que fornece o seguinte exemplo:
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;
};
Se a classe é abstrata porque nós temos um construtor? Ele usa essa classe mais tarde (Boss
é público derivado deEmployee
):
void Boss::Boss (const char* first, const char* last, double s)
: Employee (first, last)