【发布时间】:2010-12-17 21:34:41
【问题描述】:
我说的是“类型(值)”风格的演员表。我读过的书很快就忽略了它们,只说它们在语义上等同于 C 风格的强制转换,“(类型)值”,并且应该避免使用它们。如果它们的含义与旧式演员表的含义相同,那么为什么将它们添加到语言中?此外,因为声明可以包含多余的括号,所以此代码:“T x(T(y));”不会像打算使用函数式强制转换的人所期望的那样做;它声明了一个名为 x 的函数,它接受一个 T 并返回一个 T,而不是通过将 y 转换为 T 来构造一个名为 x 的 T 变量。
它们是语言设计上的错误吗?
【问题讨论】:
标签: c++ casting language-design