没有此构造函数的实例

No Instance of this constructor

所以我正在为 OpenGL 程序制作相机 class,但我遇到了基本 C++ 代码的问题,不允许我使用值对其进行初始化。我的实现如下:

class Camera{

public:
    Camera();
    Camera(vec3 pos(), vec3 fron(), vec3 up(), GLfloat y, GLfloat p, GLfloat r);

    ...
};

Camera::Camera(vec3 pos(), vec3 fron(), vec3 up(), GLfloat y, GLfloat p, GLfloat r)
{
    cout << "Hello World" << endl;
}

剩下的就是我的主线了:

int main(){

    GLfloat lastx = width/2.0f;
    GLfloat lasty = height/2.0f; 
    GLfloat yaw = 90.0f;  //yaw set to -90 because yaw of 0.0 points to right or something wierd happens in euler angles
    GLfloat pitch = 0.0f;
    vec3 camerapos = vec3(0.0f, 0.5f, -10.0f);
    vec3 camerafront = vec3(0.0f, 0.5f, 1.0f);
    vec3 cameraup = vec3(0.0f, 1.0f, 0.0f);
    Camera cam(camerapos, camerafront, cameraup, yaw, pitch, GLfloat(0.0f));
}

奇怪的是,我试图将它初始化为空,并填充它(请注意,使用相同的函数),但我改为调用它 init() 。那时,我被告知变量必须有一个类类型。

有什么明显的东西在盯着我看吗?

在此声明中:

Camera(vec3 pos(), vec3 fron(), vec3 up(), GLfloat y, GLfloat p, GLfloat r);

您将 posfronup 声明为函数(不带参数并返回 vec3)。

删除括号(在声明和定义中):

Camera(vec3 pos, vec3 fron, vec3 up, GLfloat y, GLfloat p, GLfloat r);