Salve a tutti!!

Ho un problema con una classe Ordini.h il cui file Ordini.cpp è il seguente:

#include <iostream.h>
#include <string>

#include "Ordini.h"


Ordini::Ordini(string Name, int num)
{
m_Name = Name;
m_num = num;
Fac = new float[m_num];
compName = new string[m_num];
}

Ordini::~Ordini(){
delete[] Fac;
delete[] compName;
}



In un file prova.cpp ho un array di oggetti di tipo "Ordini";

int nOrd = 2;
Ordini *pOrdine = new Ordini[nOrd];
pOrdine[0] = new Ordini("penne",3);

Quando vado a compilare mi da il seguente errore:

prova.cpp : In function `int main ()':
prova.cpp :29: no matching function for call to`Ordini::Ordini ()'
Ordini.h:16: candidates are: Ordini::Ordini
(basic_string<char, string_char_traits<char>,
__default_alloc_template<true, 0> >, int)
Ordini.h:24: Ordini::Ordini (const Ordini &)
prova.cpp :30: no match for `Ordini & = Ordini*& 'Ordini.h:24: candidates are: Ordini &Ordini:perator= (const
Ordini &)

Da cosa può dipendere?? Grazie mille