只允许一步类类型转换

问题遇到的现象和发生背景

img

img

用代码块功能插入代码,请勿粘贴截图
SmallInt si=3.14;  //调用了SmallInt(int)构造函数

运行结果及报错内容

无报错,但有疑问

我的解答思路和尝试过的方法

为什么这里的double类型的3.14可以直接隐式转换为SmallInt类。不是只允许一步类类型转换吗,这样的话不应该是要先转换为doubel先转换为int类型,再转换为SmallInt类类型。这就两步转换了,不符合一步转换。

我想要达到的结果

这里找到答案了: https://www.cnblogs.com/apocelipes/p/14415033.html#%E9%9A%90%E5%BC%8F%E8%BD%AC%E6%8D%A2%E5%BA%8F%E5%88%97

不是只允许一步类类型转换吗
是哪本书这样说的