C++ Member variables confusion
<p>I'm learning C++ (coming from Java) and this is bugging the hell out of me, say I have...</p>

<pre><code>class Foo {

public:

    Bar &amp;x; // &lt;- This is a ref, Bar is not instantiated (this is just a placeholder)
    Bar *y; // &lt;- This is a pointer, Bar is not instantiated (this is just another placeholder)
    Bar z;  // &lt;- What is this???

};

class Bar {

public:

    Bar(int bunchOfCrap, int thatNeedsToBeHere, double toMakeABar);

};
</code></pre>

<p>In this example Bar has one constructor that needs a bunch of fields specified in order to create a "Bar." Neither x, nor y creates a Bar, I understand that x creates a reference that can be pointed to a Bar and that y creates a pointer that can also represent a Bar.</p>

<p>What I don't understand is what exactly z is. </p>

<ul>
<li><p>Is it a Bar? And if so, how can it be given Bar's only constructor?</p></li>
<li><p>Is it a Bar sized chunk of memory belonging to instances of Foo that  can be initialized into a Bar?</p></li>
<li><p>Or is it something else?</p></li>
</ul>

<p>Thanks!</p>
