1
我寫了這樣的類:可以在初始化列表中引用該類的字段嗎?
class FastDecoder
{
public:
FastDecoder(void);
~FastDecoder(void);
private:
SnapshotMessageBuilder messageBuilder;
DecodedMsg const& decodedMsg;
};
如果正確使用messageBuilder
初始化decodedMsg
?
FastDecoder::FastDecoder(void):
decodedMsg(messageBuilder.GetDecodedMsg())
{
我懷疑是FastDecoder尚未構建那麼不是所有的字段都probaly初始化,所以我可以有運行時錯誤triing訪問messageBuilder
如果我的代碼不好再怎麼改寫更好?它會繼續工作,如果我重新安排這樣的領域:
private:
DecodedMsg const& decodedMsg;
SnapshotMessageBuilder messageBuilder;
我真的不喜歡這樣的事情 - 當我重新排序字段聲明和一切的東西時。我應該以某種方式重構我的類,以避免「字段聲明順序依賴性」? – javapowered 2013-04-30 18:06:48
@javapowered:聽起來很不錯。爲什麼你需要''codedMsg'參考btw?你可以在需要時調用'messageBuilder.GetDecodedMsg()'嗎? – 2013-04-30 18:09:08
我只需要一點性能和可讀性。我正在寫低延遲代碼。 – javapowered 2013-04-30 18:10:09