Alocar dinamicamente novo objeto no construtor

Então, dado este cenário simples:

class A{
public:        
    A(){
        n = new int(10);
    }
    ~A(){
        delete n;
    }
    int* n;
};

int main(){
    A* a = new A();
}

Isso pode causar corrupção de heap (problemas em geral), uma vez que um ponteiro não terminou de alocar, enquanto eu estou fazendo uma nova alocação?

Se sim, usar std :: vector dentro de construtores de heap também é proibido, certo?

Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion