Risposta breve: non si può.
Risposta lunga ma perigliosa: se usi la new creando un array verrà inevitabilmente chiamato solo il costruttore di default (mi pare che nel nuovo standard si possa usare la sintassi dell'initializer list, ma non ne sono sicuro); d'altra parte puoi ottenere un blocco di memoria "grezza" (con una new unsigned char[numeroelementi*sizeof(tipoelementi)]) e richiamare il costruttore di ciascun elemento usando la sintassi del placement new, ma non te lo consiglio (è abbastanza un casino, visto che poi dovrai richiamare i distruttori manualmente).
Risposta migliore: evita gli array "stile C" e usa std::vector.
codice:
#include <vector>
// ...
std::vector vec(n, MioOggetto(par1, par2, par3)); // <-- tutti gli elementi vengono inizializzati come copia dell'istanza passata come parametro
o, se ogni elemento va inizializzato in maniera diversa:
codice:
std::vector vec;
// non strettamente necessario, ma velocizza preallocando la memoria:
vec.reserve(n);
for(int i=0; i<n; i++)
vec.push_back(MioOggetto(par1(n), par2, par3));