我知道,由于隐式转换,我们可以为函数中的float参数传递double。问题是我应该这样做吗?
函数定义或原型为:
void sf:Transformable::setPosition(float x, float y)
我将这些双精度体作为参数传入:
spriteTree.setPosition(20, 0);
我应该在上面还是下面呢?
spriteTree.setPosition(20f, 0f);
来自文档(强调我的):
当你写一个c++程序时,重要的是要确保它是类型安全的。这意味着每个变量、函数参数和函数返回值存储的是可接受的数据类型涉及不同类型值的操作"有意义";和不要造成数据丢失、位模式解释错误或内存损坏。一个从不显式或隐式的程序从定义上将值从一种类型转换为另一种类型是类型安全的。然而,类型转换,甚至是不安全的转换,有时是必需的。例如,您可能必须存储在int类型的变量中进行浮点操作,或者您可能有将unsigned int类型的值传递给接受signed int类型的函数int。这两个例子都说明了不安全的转换,因为它们可能导致数据丢失或值的重新解释。