我应该在 init 上设置类成员(需要动态分配)还是稍后分配
Should I set class member on init (requires dynamic allocation) or assign later
假设我有一个class A
,它应该保存一个class B
(指针或直线)的实例,并且由于某些原因,B
不能在A
的MIL中启动,而是稍后在构造函数的主体中启动。
据我了解,我有 2 种选择:
- 在 MIL 中初始化
B
(使用空或部分构造函数),稍后设置相关字段。 - 持有
B*
并在我获得所有信息时动态分配它。不过,这需要new
。
我想选项 1 在性能方面更好。如果性能不是问题,我应该选择哪个?
我想说这通常取决于如果 b 分配/初始化失败,a 是否有任何用处。如果没有 b 就没用,请使其成为 ctor 的一部分,并在 b 分配或初始化失败时让异常传播。如果 a 可以在没有 b 的情况下使用,那么 b 初始化可以推迟。
相关文章:
- 开放 CV 中的动态内存分配,用于视频处理
- 为什么类和 main() 函数中也有动态内存分配
- 如何静态识别动态堆分配?
- 给定特定内存地址的数组的动态内存分配
- 我刚刚了解了C++中的动态内存分配
- 无法删除布尔动态内存分配
- 使用列表进行动态结构分配
- C++:检查动态取消分配是否正常工作
- 我在 2D 数组的动态内存分配中遇到了一些奇怪的代码C++? 请解释一下这是什么?
- 具有对齐存储的动态内存分配
- 在cpp中使用boost-python的python代码是否进行动态内存分配
- 我应该在这个程序中使用静态内存分配还是动态内存分配
- C++ 模板函数中的动态内存分配
- C++具有动态内存分配的 constexpr 函数
- 动态内存分配错误
- 按引用传递和动态内存分配之间的区别是什么
- 为什么移动语义与动态 mem 分配中的浅拷贝具有相同的行为
- 如何在没有动态内存分配(堆)的情况下为可变大小数组(矢量)定义安全容器或视图
- C++返回数组而不进行动态内存分配?
- 使用向量和气泡排序的动态内存分配