假设我有一个 class A
应该包含 class B
的实例(指针或直线),由于某些原因 B
不能在 A
的 MIL 中启动,但稍后会在构造函数的主体中启动。
据我所知,我有 2 个选择:
- 在MIL中初始化
B
(构造函数为空或部分构造函数),稍后设置相关字段。 - 持有
B*
,当我掌握所有信息时,动态分配它。不过,这将需要new
。
我想选项 1 在性能方面更好。如果性能不是问题,我应该选择哪个?
最佳答案
我会说这通常取决于如果 b 分配/初始化失败,a 是否有任何用处。如果没有 b 就没用,请将其作为 ctor 的一部分,并在 b 分配或初始化失败时让异常传播。如果 a 可以在没有 b 的情况下使用,那么 b 的初始化可以推迟。
关于c++ - 我应该在 init 上设置类成员(需要动态分配)还是稍后分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48003359/