类变量未从构造函数初始化

Class variables not being initialized from constructor

本文关键字:初始化 构造函数 类变量      更新时间:2023-10-16

我的相机类构造器有问题。我有很多变量,我正在构造函数中初始化,并且所有变量都被分配了一些garbade值而不是我的值。问题可能出在哪里?例如printf("%d", yawSensitivity)输出-1610612736

我试图粘贴尽可能少的代码。也许你会发现一个概念错误,并为我指出正确的方向......

相机.h

class Camera
{
    protected:
        int windowMidX;
        int windowMidY;
        float pitchSensitivity; 
        float yawSensitivity; 
    public:
        Camera(int windowWidth, int windowHeight);
        ~Camera();
};

相机.cpp

Camera::Camera(int windowWidth, int windowHeight)
{
    this->windowMidX = windowWidth  / 2;
    this->windowMidY = windowHeight / 2;
    this->pitchSensitivity = 0.1f; 
    this->yawSensitivity   = 0.1f;
}
Camera::~Camera() {}

相机初始化

Camera *cam = new Camera(WIN_WIDTH, WIN_HEIGHT);

例如printf("%d", yawSensitivity)

您的代码表现出未定义的行为。 yawSensitivity属于 float 型。 %d格式说明符需要类型 int 的参数。请改用%f