我已经编写了自己的 FloatArray 类以用于项目。我遇到的问题是,当我使用 get 方法返回给定索引处的值时,返回的值是截断的 int 而不是整个浮点数。如果我使用我在其中创建的重载 << 运算符(它以正常方式访问背景数组),它会很好地打印整个浮点数。
有什么想法我在这里想念的吗?
我的 FloatArray 类获取函数:
float FloatArray::get(int index) const
{
int returnval(0);
if (index > this->size-1 || index < 0)
{
cout << "Index Out of Bounds!" << endl;
exit(1);
}
else
{
returnval=this->array[index];
}
return returnval;
}
重载 << 运算符:
ostream & operator<<(ostream & _ostream, FloatArray &rhs)
{
for(int i=0; i <= rhs.size-1; i++)
{
_ostream << rhs.array[i] << " ";
}
return _ostream;
}
示例主要:
int main()
{
FloatArray floats(2);
float zero(0.12);
float one(1.12);
float two(2.12);
floats.push(zero);
floats.push(one);
floats.expandBy(1);
floats.push(two);
cout << "Using overloaded << operator: " << floats << endl;
cout.precision(2);
cout << fixed << "Using get function: " << floats.get(0) << " " << floats.get(1) << " " << floats.get(2) << endl;
return 0;
}
主输出:
Using overloaded << operator: 0.12 1.12 2.12
Using get function: 0.00 1.00 2.00