is it ok to refer field of the class in initialization list?
<p>I wrote such class:</p>

<pre><code>class FastDecoder
{
public:
    FastDecoder(void);
    ~FastDecoder(void);
private:
    SnapshotMessageBuilder messageBuilder;
    DecodedMsg const&amp; decodedMsg;
};
</code></pre>

<p>If it is correct to use <code>messageBuilder</code> to initialize <code>decodedMsg</code>?</p>

<pre><code>FastDecoder::FastDecoder(void):
    decodedMsg(messageBuilder.GetDecodedMsg())
{
</code></pre>

<p>I suspect that as FastDecoder is not yet constructed then not all fields are probaly initialized and so I can have runtime error triing to access <code>messageBuilder</code></p>

<p>If my code is not good then how to rewrite it better? Will it keep working if I reorder fields like that:</p>

<pre><code>private:
    DecodedMsg const&amp; decodedMsg;
    SnapshotMessageBuilder messageBuilder;
</code></pre>
