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