c++ 没有合适的从 "Camera"到 "Actor *"的转换函数

标签 c++ class inheritance reference

C++ 还很新,所以请多关照。让 str8 进入正题:

首先是 Actor 类:

class Actor
{
vec3 location;
vec3 rotation;
}

然后是相机类:

class Camera: public Actor
{
float fov;
}

最后是 Controller 类:

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

现在问题...

考虑到相机来自 Actor ,我尝试了类似...

controller.setPawnActor(camera);

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

我又是整个 C++ 的新手,所以...

感谢大家抽空。

最佳答案

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

关于c++ 没有合适的从 "Camera"到 "Actor *"的转换函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29394372/

相关文章:

c++ - OpenGL 土壤错误

c++ - 如何将 char 数组转换为 float 数组?

c++ - 在 C++ 中如何使用另一个类的属性

java - 在 Java 运行时扩展或添加新类

c++ - 对象继承虚函数运行失败报错

java - 一个对象可以包含它的父类(super class)吗?

c++ - Eclipse NEON : can't find my user-defined class (c++, Linux)

c++ - 传递一列二维数组

java - 无法使用java中另一个类的公共(public)方法

c++ - 我应该把这个方法放在哪个类中? C++