【发布时间】:2011-05-26 21:53:52
【问题描述】:
我了解具有一个(非默认)参数的构造函数的行为类似于隐式转换器,它将该参数类型转换为类类型。但是,explicit 可用于限定任何构造函数,没有参数的构造函数(默认构造函数)或具有 2 个或更多(非默认)参数的构造函数。
为什么在这些构造函数上允许显式?有没有什么例子可以用来防止某种隐式转换?
【问题讨论】:
-
Falmarri:如果不被阻止,是否有一些示例在默认构造函数或 >=2 参数构造函数上很有用?
-
见阿德里安的回答。为什么要阻止它?
-
Falmarri:如果我的查询暗示我“不想”在这样的构造函数上使用它,我很抱歉。相反,我很想知道“为什么”它是允许的。
标签: c++ constructor explicit explicit-constructor