Can this be a problem?
- 如果您在使用前初始化它们并且不要忘记释放(在指针的情况下),我看不到任何问题。
What happens to members that aren't explicitly copied (btw, no pointers in these members)? they are also not initialized in the constructor
- 他们拿着垃圾
Can this lead to any "hidden" problems?
-不,如果你小心的话
但我建议您无论如何都在构造函数中初始化它们,因为这样更容易捕获错误,并且使您的对象始终保持完整状态。例如,捕获nullptr
指针比捕获垃圾指针或指向已释放对象的指针要容易得多。因为在第一种情况下程序只会崩溃(取消引用空指针是 UB,但通常它只是崩溃)
如果可能的话,我更愿意创建局部变量来存储中间结果。如果它不是单个方法的中间结果 - 那么它可能是一个坑,如果在初始化之前在其他方法中使用此变量,您可能会跌倒。在这种情况下,最好存储零初始化变量 - 这样您就可以assert
在对其进行计算之前使其处于有效状态