class types as private members, MVP?
<p>Because of the most vexing parse, if you have a private member definition in a class header which is a class type like this:</p>

<pre><code>box newBox;
</code></pre>

<p>and box has a constructor that accepts no arguments, does that mean you have to either make it a pointer or a reference type?</p>

<p>how do you get around this problem? It seems inelegant to be able to declare some classes this way but not the one's that accept no arguments. or am I misunderstanding something?</p>

<p>because as far as I understand it, if it accepts no arguments, then this is not only a definition, but initialisation as well.</p>

<pre><code>class whatever
{
private:
    box newBox; //is this not allowed because of the most vexing parse? because it's a
                //header file and because of the MVP this is initialisation as well? or
                //am I getting confused about something?
};

class box
{
public:
    box();
}
</code></pre>
