Non capisco perchč nel main di questo programma non va bene la creazione dell' oggetto, il compilatore dice che non riesce a convertire.

codice:
#ifndef ANIMALE_HPP
#define	ANIMALE_HPP
#include <string>

using namespace std;

class Animale
{
    
protected:
    
    string specie;
    string  nome;
    int anni;
    
public:
 //   Animale(string nome);
    Animale(string nome, int anni);
    Animale(string nome);
    ~Animale();
    
    void setanni(int anni);
    void setnome(string n);
    void setspecie(string s);
    int getanni();
    string getnome();
    string getspecie();
};



#endif	/* ANIMALE_HPP */

codice:
#include "Animale.hpp"

Animale:: Animale(string n)
{
    nome=n;
}

Animale::Animale(string n, int a)
{
    nome=n;
    anni=a;
}

Animale::~Animale()
{
    specie="";
    nome="";
    anni=-1;
}

    void Animale::setanni(int a){anni=a;}
    void Animale::setnome(string n){nome=n;}
    void Animale:: setspecie(string s){specie=s;}
    int Animale::getanni(){return anni;}
    string Animale::getnome(){return nome;}
    string Animale::getspecie(){return specie;}

codice:
#ifndef CANE_HPP
#define	CANE_HPP

#include "Animale.hpp"

class Cane  :public Animale
{
protected:
    string specie;
    string nome;
    int anni;
    
public:
    Cane(string nome, int anni);
    Cane(string nome);
    ~Cane();
    
    void setanni(int a);
    void setnome(string n);
    void setspecie(string s);
    int getanni();
    string getnome();
    string getspecie();
    
    
};

#endif	/* CANE_HPP */

codice:
#include "Cane.hpp"

Cane::Cane(string name, int age):Animale(name, age)
{
    anni=age;
    nome=name;
  
}

Cane::Cane(string nome):Animale(nome)
{
    nome=nome;
}

Cane::~Cane()
{
    specie="";
    nome="";
    anni=-1;
}

    void Cane::setanni(int a){anni=a;}
    void Cane::setnome(string n){nome=n;}
    void Cane:: setspecie(string s){specie=s;}
    int Cane::getanni(){return anni;}
    string Cane::getnome(){return nome;}
    string Cane::getspecie(){return specie;}

E il main:

codice:
#include <cstdlib>
#include "Animale.hpp"
#include <stdio.h>
#include <iostream>

using namespace std;

/*
 * 
 */
int main() {
    
    string nome="Scheggia";
    int anni=7;
    Animale * a=new Cane(nome, anni);            //errore cannot convert  int* to Animale.
 
   
    cout << "Il cane si chiama " <<a->getnome()<<"." <<endl;
    cout <<"Il cane ha " <<a->getanni()<<" anni." <<endl;
  
    
    

    return 0;
}