Raga come mai il compilatore mi da questo errore?! Ecco il codice.

impiegato.h
codice:
#ifndef _IMPIEGATO_
#define _IMPIEGATO_
#include <string>

#define DIM 30

static int numero_ = 1000;

class impiegato
{
protected:

    mutable int stipendio_;
    int matricola_;
    std::string nome_;
    std::string cognome_;

public:

    impiegato(std::string, std::string, int);
    ~impiegato();
    std::string getNome() const;
    std::string getCognome() const;
    int getStipendio() const;
    int getMatricola() const;
    std::string getInfo() const;

};

#endif // _IMPIEGATO_
impiegato.cpp
codice:
#include "impiegato.h"
#include <string>

using namespace std;

impiegato::impiegato(string nome, string cognome, int stipendio)
{
    nome_ = nome;
    cognome_ = cognome;
    stipendio_ = stipendio;
    matricola_=numero_++;;

}


impiegato::~impiegato() {}


string impiegato::getNome() const
{
    return nome_;
}
string impiegato::getCognome() const
{
    return cognome_;
}

int impiegato::getStipendio() const
{
    return stipendio_;
}

int impiegato::getMatricola() const
{
    return matricola_;
}

std::string impiegato::getInfo() const
{
    return "Impiegato";
}
dipendente.h
codice:
#ifndef _DIPENDENTE_
#define _DIPENDENTE_

#include "impiegato.h"

class dipendente: public impiegato
{
private:

    int bonus_;

public:

    dipendente(std::string, std::string, int, int);
    ~dipendente();
    void setBonus(int);
    int getStipendio() const;
};

#endif // _DIPENDENTE_
dipendente.cpp
codice:
#include "dipendente.h"
#include <string>

using namespace std;

dipendente::dipendente(string nome, string cognome, int stipendio, int bonus)
{
    impiegato(nome,cognome,stipendio);
    bonus_ = bonus;
}

dipendente::~dipendente() {}

void dipendente::setBonus(int bonus)
{
    bonus_ = bonus;
}

int dipendente::getStipendio() const
{
    stipendio_ = stipendio_+bonus_;
    return stipendio_;
}