何时使用显式构造函数(C ++ 11)

时间:2017-02-02 01:58:25

标签: c++ c++11 constructor explicit

我已经了解了构造函数中 显式 的用法及其可能的一些结果。堆栈溢出时有很多帖子,但我的主要问题是在设计构造函数和决定其可转换性时需要记住一些具体要点。根据我目前的研究:

  1. 我认为显式构造函数更冗长。这有两个优点(没有隐式转换,更可读的代码)和缺点(没有转换构造函数作为返回值,更多写入)。
  2. 此外,使用显式构造函数不能进行复制初始化。在这种情况下,考虑到我对C ++相对较新,我无法掌握这种行为的所有结果。复制构造函数可能是一个例外。
  3. 构建课程的背景'用法也会影响明确的决定。
  4. 所以,我的问题是:

    • 在决定C ++ 11中的显式用法时,是否还有其他关键点或规则(至少对于初学者来说)?
    • 虽然使单个参数构造函数显式化的一般规则不合适(使用C ++ 11的列表初始值设定项隐式转换为多参数构造函数)是否应该遵循?

0 个答案:

没有答案