 <p>As said, a reference to a pointer to Class.</p> <ul> <li>you pass a <code>Class *</code> to the function</li> <li>the function may change the pointer to a different one</li> </ul> <p>This is a rather uncommon interface, <strong>you need more details</strong> to know what pointers are expected, and what you have to do with them.</p> <p>Two examples:</p> <p><strong>Iteration</strong> </p> <pre><code>bool GetNext(Classs *&amp; class) { if (class == 0) { class = someList.GetFirstObject(); return true; } class = somePool.GetObjectAbove(class); // get next return class != 0; } // Use for oterating through items: Class * value = 0; while (GetNext(value)) Handle(value); </code></pre> <p><strong>Something completely different</strong></p> <pre><code>void function (Class *&amp; obj) { if (IsFullMoon()) { delete obj; obj = new Class(GetMoonPos()); } } </code></pre> <p>In that case, the pointer you pass must be new-allocated, and the pointer you receive you need to pass either to <code>function</code> again, or be <code>delete</code>'d by you.</p>