C++ why double pointer for out/return function parameter?
<p>I'm relatively new to C++ and working on a fairly large C++ project at work. I notice handfuls of functions that take double pointers as parameters for objects that the function will instantiate on the heap. Example:</p>

<pre><code>int someFunc(MyClass** retObj) {
    *retObj = new MyClass();

    return 0;
}
</code></pre>

<p>I'm just not sure why double pointers are always used, in this project, instead of just a single pointer? Is this mostly a semantic cue that it's an out/return parameter, or is there a more technical reason that I'm not seeing?</p>
