Por que deveria ser usado o idioma" PIMPL"? [duplicado]

esta pergunta já tem uma resposta aqui: o idioma pImpl é realmente usado na prática? ... CatImpl; } Cat::~Cat() { delete cat_; } Cat::Purr(){ cat_->Purr(); } CatImpl::Purr(){ printf("purrrrrr"); }