Puntatore (quasiasi tipo) va inizializzato a 0. Punto.
il tipo string è una classe (si inizializza da solo) quindi non c'è bisogno di inizializzarlo.
L'inizializzazione non va fatta come lo stai facendo tu (tu stai facendo una assegnazione)
class Prova
{
private:
char *str;
string st;
public:
Prova () : str(0){};
.....
Non c'è bisogno di inizializzare lo std::string.