C ++ pourquoi double pointeur pour le paramètre de fonction out / return?

Je suis relativement novice en C++ et en travaillant sur un assez grand projet C++ au travail. J'ai remarqué une poignée de fonctions qui prennent des doubles pointeurs comme paramètres pour les objets que la fonction va instancier sur le tas. Exemple:

int someFunc(MyClass** retObj) {
    *retObj = new MyClass();

    return 0;
}

Je ne suis pas sûr de savoir pourquoi les doubles pointeurs sont toujours utilisés, dans ce projet, au lieu de juste un seul pointeur? S'agit-il surtout d'une sémantique de repère qu'il est un/paramètre de retour, ou est-il plus de raison technique que je ne suis pas voyant?

source d'informationauteur Bret Kuhns