【发布时间】:2021-06-19 20:09:35
【问题描述】:
假设我有一个指针,我希望它被初始化为 nullptr。哪个选项会更好,创建一个将该成员变量设置为 nullptr 的构造函数,或者只是在头文件的声明中将其初始化为 nullptr。
有什么不同吗?后者被认为是不好的做法吗?
提前致谢。
【问题讨论】:
-
默认初始化器被应用到每个构造函数,所以如果你向类添加一个新的构造函数,你不需要检查每个成员。您还可以更改覆盖该值的构造函数中的默认初始化。我总是使用默认初始化而不是构造函数初始化,首先是因为您可以确定每个构造函数都会发生这种情况,其次(IMO)它的可读性更好
-
我认为唯一可能的不好的做法是首先使用指针。如果用例确实需要一个指针,那么使用像
std::unique_ptr这样的 smart 指针,其默认构造函数会将其初始化为“null”。
标签: c++