Is creating an empty class purely to distinguish it from another class good practice?
<p>I have a class <code>CardStack</code>. I have several classes that inherit from <code>CardStack</code> e.g. <code>Cascade</code>, <code>Deck</code>, <code>Foundation</code> etc.</p>

<p><code>Foundation</code> doesn't need to add any functionality to <code>CardStack</code>, but for display purposes my app needs to know which of the <code>CardStack</code>s are actually <code>Foundation</code>s.</p>

<p>Incidentally, I have no such function <code>CardStack.Display()</code> (I'm using a model-view-controller pattern where the <code>View</code> object simply queries the <code>Model</code> to find out what type of objects it's dealing with). </p>

<p>It seems OK to me, but is there any reason <em>not</em> to do this?</p>

<pre><code>class Foundation : public CardStack
{

};

class Model
{
    Cascade cascade[10];
    Foundation foundations[10];
    ...
};
</code></pre>
