如果我执行
double d = 34.56;
int i = (int)d;
我没有进行"下行转换(downcasting)"吗?
还是这个术语只用于类和对象方面?
我感到困惑,因为在这种情况下,我们从一个更大的double
向一个较小的int
进行 "下行转换(downcasting)",但在类的情况下,我们从一个较小的基类(base class)
向一个更大的派生类(derived class)
进行 "下行转换(downcasting)"。
这两种约定在某种程度上不是相反的吗?
int i = d;
可以达到相同的效果,所以实际上与强制类型转换无关。 - David Thornley