【问题标题】:Should I still use the keyword explicit for copy constructors? [closed]我是否仍应将关键字显式用于复制构造函数? [关闭]
【发布时间】:2015-12-15 10:51:29
【问题描述】:

C++ 提供了关键字explicit 来抑制隐式转换 不允许进行此类转换时的转换构造函数。一种 声明为显式的构造函数不能在隐式中使用 转换。在单参数构造函数上使用显式关键字 编译器不应使用它来执行隐式 转化率。

这是有道理的,但是对于复制构造函数,我仍然应该使用关键字explicit 吗?在其他什么情况下使用关键字explicit 会有用,为什么?

【问题讨论】:

  • 请引用您的报价。

标签: c++11 software-design explicit explicit-conversion


【解决方案1】:

显式声明复制构造函数是合法的。声明与否真的取决于你想做什么。例如,如果您想禁止在函数调用时或使用复制初始化语法隐式调用复制构造函数 explicit,则声明它。

【讨论】:

  • 这是合法的,但通常很愚蠢。这种类型不是 CopyConstructible。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-18
  • 1970-01-01
  • 1970-01-01
  • 2018-08-26
  • 2010-11-10
  • 2020-06-04
  • 1970-01-01
相关资源
最近更新 更多