之间有什么区别
int a;
// a gets some value
double pi = static_cast<double>(a)/3;
和
int a;
// a gets some value
double pi = double(a)/3;
你见过后者吗?在我看来,我在 Stroustrup 编写的一些片段中看到了它,但我找不到参考。
原文由 Alessandro Jacopson 发布,翻译遵循 CC BY-SA 4.0 许可协议
之间有什么区别
int a;
// a gets some value
double pi = static_cast<double>(a)/3;
和
int a;
// a gets some value
double pi = double(a)/3;
你见过后者吗?在我看来,我在 Stroustrup 编写的一些片段中看到了它,但我找不到参考。
原文由 Alessandro Jacopson 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答1.3k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
4 回答859 阅读
1 回答929 阅读
1 回答965 阅读
1 回答730 阅读
1 回答831 阅读
有人可能认为他们是在构建而不是铸造。考虑:
许多人认为他们在那里调用了构造函数,而实际上他们正在执行 C 风格的转换。碰巧的是,强制转换将在它查看的一长串其他事物中查看目标类型的构造函数,因此在这里它最终会调用构造函数。
功能符号转换与其他类型的 C 转换具有所有相同的弱点:
除此之外,您在两种情况下都执行完全相同的操作。