我应该在 init 上设置类成员(需要动态分配)还是稍后分配



假设我有一个class A,它应该保存一个class B(指针或直线)的实例,并且由于某些原因,B不能在A的MIL中启动,而是稍后在构造函数的主体中启动。

据我了解,我有 2 种选择:

  1. 在 MIL 中初始化B(使用空或部分构造函数),稍后设置相关字段。
  2. 持有B*并在我获得所有信息时动态分配它。不过,这需要new

我想选项 1 在性能方面更好。如果性能不是问题,我应该选择哪个?

我想说这通常取决于如果 b 分配/初始化失败,a 是否有任何用处。如果没有 b 就没用,请使其成为 ctor 的一部分,并在 b 分配或初始化失败时让异常传播。如果 a 可以在没有 b 的情况下使用,那么 b 初始化可以推迟。

最新更新