gpt4 book ai didi

打印 header 中声明的变量时 C++ 崩溃

转载 作者:行者123 更新时间:2023-12-01 23:30:29 25 4
gpt4 key购买 nike

我正在用 C++ 创建一个用于 OpenGL 的Camera 类。当我尝试打印 Camera.h 中声明的任何变量时,程序崩溃。但如果我设置或获取变量的值,它不会崩溃 我做错了什么?

相机.h

    #ifndef CAMERA_H
#define CAMERA_H

class Camera
{
public:
Camera();
Camera(float xP, float yP, float zP);
void move(float x, float y, float z);

protected:
private:
float xPos, yPos, zPos;
};

#endif // CAMERA_H

相机.cpp

    #include "Camera.h"
#include <iostream>
#include <GL/glut.h>

using namespace std;

Camera::Camera()
{
}

Camera::Camera(float xP, float yP, float zP)
: xPos(xP), yPos(yP), zPos(zP)
{
}

void Camera::move(float x, float y, float z)
{
glTranslatef(-x, -y, -z);
//None of this crashes:
xPos = 1;
yPos = xPos;
//Crashes here:
cout << "mainCamera x = " << xPos << endl;
}

我收到的崩溃消息是:

opengl.exe has encountered a problem and needs to close. We are sorry for the inconvenience.

<小时/>

编辑

如果我将行 float xPos, yPos, zPos; 放在 Camera.h 的公共(public)部分,然后调用

    Camera mainCamera(0.0f, 0.0f, 0.0f);
cout << "mainCamera x = " << mainCamera.xPos << endl;

...在 main.cpp 中,它工作得很好并打印:

mainCamera x = 0

最佳答案

嗯,我明白了。而这个是一个愚蠢的人。我忘记在 Main.cpp 中包含 windows.h,由于某种奇怪的原因,它阻止了 float 的打印(???)。现在可以完美运行了。

#include <windows.h>

关于打印 header 中声明的变量时 C++ 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11907970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com