【问题标题】:c++ no suitable conversion function from "Camera" to "Actor *"c++没有合适的从“Camera”到“Actor *”的转换函数
【发布时间】:2015-04-01 15:07:02
【问题描述】:

C++ 相当新,所以请温柔一点。直奔主题:

首先是actor类:

class Actor
{
vec3 location;
vec3 rotation;
}

然后是相机类:

class Camera: public Actor
{
float fov;
}

最后是控制器类:

class Controller
{
Actor* pawnActor;
void setPawnActor(Actor* actor);
}

现在问题...

考虑到相机来自演员,我尝试过类似...

controller.setPawnActor(camera);

...但是...编译器说:不存在从“Camera”到“Actor *”的合适转换函数。 当然我可以使用:void setPawnActor(Camera* camera);,但对我来说,为每个可能成为“PawnActor”的演员创建​​一个函数似乎毫无意义。有什么想法???

我再次对整个 c++ 事物不熟悉,所以...

感谢大家的宝贵时间。

【问题讨论】:

  • 你需要传递一个Camera *而不是Camera的变量
  • from "Camera" to "Actor *你传递的是对象还是指针?

标签: c++ class inheritance reference


【解决方案1】:

如果相机只是一个对象,则将其作为 &camera 传递,因为函数需要一个指针而不是对象。

【讨论】:

  • 感谢大家的快速回复! Camera* myCamera = new Camera(); 似乎解决了我之前的所有问题。
猜你喜欢
  • 2017-09-25
  • 1970-01-01
  • 1970-01-01
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-06
  • 1970-01-01
相关资源
最近更新 更多