没有这个构造函数的实例
Posted
技术标签:
【中文标题】没有这个构造函数的实例【英文标题】:No Instance of this constructor 【发布时间】:2015-12-06 00:18:23 【问题描述】:所以我正在为一个 OpenGL 程序创建一个 Camera 类,并且我遇到了一个带有基本 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()。那时,我被告知该变量必须具有 Classtype。
有什么明显的东西在盯着我看?
【问题讨论】:
【参考方案1】:在此声明中:
Camera(vec3 pos(), vec3 fron(), vec3 up(), GLfloat y, GLfloat p, GLfloat r);
您将pos
、fron
和up
声明为函数(不带参数并返回vec3
)。
删除括号(在声明和定义中):
Camera(vec3 pos, vec3 fron, vec3 up, GLfloat y, GLfloat p, GLfloat r);
【讨论】:
我不认为这是最令人头疼的解析;这就是函数声明的方式。就像int a();
不是 MVP,只是令人烦恼。
facepalms 天哪,我累了,很确定我上周才向朋友指出了同样的错误。这就是它现在完美的工作,你的明星。以上是关于没有这个构造函数的实例的主要内容,如果未能解决你的问题,请参考以下文章