C 隐式转换:澄清
在最近的讨论中,C 中隐式转换的有效性受到质疑。具体来说,问题围绕是否允许多个隐式用户定义转换而展开。为了阐明这个问题,让我们检查以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
如原始问题所述,第一个函数调用会导致错误,因为没有从 const char * 到 A 的转换虽然存在从字符串到 A 的转换,但应用此转换涉及多次转换,这是不允许的。 C 标准证实了这一点:
1 |
|
在这种情况下,两个隐式转换(字符串到 const char 和 const char 到 A)的存在违反了此规则,导致编译器错误。因此,C 中禁止多个隐式用户定义转换的断言是准确的。
以上是C 中可以应用多个隐式用户定义转换吗?的详细内容。更多信息请关注PHP中文网其他相关文章!