【发布时间】:2018-12-16 18:56:58
【问题描述】:
我是 C++ 初学者,我正在阅读 Bjarne Stroustrup 的《编程:使用 C++ 的原则和实践》。
在3.9.2 不安全的转换部分,作者提到了
当初始值设定项是整数文字时,编译器可以检查实际值并接受不意味着缩小的值:
int char b1 {1000}; // error: narrowing (assuming 8-bit chars)
我对这个声明感到困惑。它使用两种类型(int 和char)。我以前从未在 Java 和 Swift 中看到过这样的声明(我比较熟悉的两种语言)。这是拼写错误还是有效的 C++ 语法?
【问题讨论】:
-
你有这本书的哪个版本和印刷版?您是否查找过本书的勘误表?
-
那你读的是什么版本?我确定 Bjarne 想知道这个错误。
-
3.9.2 不安全转换 不安全转换是指一个值可以隐式转换为不等于原始值的另一种类型的值。例如:int i = 20000;字符 c = i;这种转换称为“缩小”转换。 double to int, char or bool int to char or bool char to bool
-
float char是另一种有用的类型,尤其是在游泳池中。有些配有啤酒架。 -
这是拼写错误还是有效的 C++ 语法? Try it(好的,好的,不,它无效)。
标签: c++ type-conversion initialization uniform-initialization narrowing