转换问题无法从void转换为float C ++

时间:2010-05-19 01:12:27

标签: c++ type-conversion casting

正如我所说,我得到了这个可怕的错误,我真的不知道该怎么办

 float n= xAxis[i].Normalize();

多数民众赞成在哪里我得到错误,我得到它cuz normalize是一个无效函数,这是它

void CVector::normalize()
{
 float len=Magnitude();
 this->x /= len;
 this->y /= len;  
}

我需要标准化以保持无效,因为我尝试了像这样的正常演员

float n= (float)xAxis[i].Normalize();

并且它也不能用于静态,动态转换,重新解释,const转换和不能使它工作任何帮助将真正apreciated ... 谢谢你>。<

3 个答案:

答案 0 :(得分:2)

void函数不会返回任何内容,因此无法分配给n。

您应该从normalize返回一些值以将其分配给n。

float CVector::normalize()
{
 float len=Magnitude();
 this->x /= len;
 this->y /= len;
 return 10.0;
}

答案 1 :(得分:0)

Normalize不返回值,因为它具有void返回类型。它改变了一个内部成员。因此,您必须直接访问该成员或返回该成员的访问者。

答案 2 :(得分:0)

Normalize()方法不返回任何内容,因此您无法将返回值分配给变量。可能Normalize()只是修改它所调用的对象。