11

可能重复:
常规强制转换 vs. static_cast vs. dynamic_cast
在 C++ 中,为什么使用 static_cast<int>(x) 而不是 (int)x?

static_cast<float>(foo)和 和有什么不一样float(foo)?我经常static_cast<float>在模板代码中看到或类似的从任何整数类型到某些特定的整数类型。例如,假设我想要一个函数来对任何整数类型执行浮点除法。我通常会看到这样的事情:

template <typename T>
float float_div(T lhs, T rhs)
{
    // I normally see this
    return static_cast<float>(lhs) / static_cast<float>(rhs);

    // But I could do this
    // return float(lhs) / float(rhs); // But I could do this
}

使用float(lhs)or有什么好处static_cast<float>(lhs)吗?float(lhs)初始化/转换的名称是什么?

4

0 回答 0