【问题标题】:Casting problem cant convert from void to float C++转换问题无法从 void 转换为 float C++
【发布时间】:2010-05-19 01:12:27
【问题描述】:

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

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

这就是我得到错误的地方,我得到它因为规范化是一个无效函数,就是这样

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

我需要正常化以保持无效,但我尝试过像这样的正常投射

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

它也不适用于静态、动态转换、重新解释、const 转换并且不能使其工作任何帮助都会非常感激...... 谢谢>.

【问题讨论】:

标签: c++ type-conversion casting


【解决方案1】:

void 函数不返回任何内容,因此没有任何内容可分配给 n。

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

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

【讨论】:

  • 这就是我的想法哦,我只是将其修改为浮动 ty vm
  • 如果您只是更新班级成员,您可以查看这些内容而不是返回任何内容。
  • 是的,可悲的是,我正在修改另一个类:我认为它工作得很好,就像我有野心一样 XD
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-26
      • 2013-08-20
      • 2014-10-23
      • 2019-04-13
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      相关资源
      最近更新 更多