2013-10-31 51 views
0

我的Camera類構造函數有問題。我有很多變量,我在構造函數中進行初始化,併爲它們分配了一些garbade值,而不是我的。問題在哪裏?例如printf("%d", yawSensitivity)輸出-1610612736未從構造函數初始化類變量

我試圖粘貼儘可能少的代碼。也許你會發現一個概念錯誤,並指出我在正確的方向...

Camera.h

class Camera 
{ 
    protected: 

     int windowMidX; 
     int windowMidY; 

     float pitchSensitivity; 
     float yawSensitivity; 

    public: 

     Camera(int windowWidth, int windowHeight); 
     ~Camera(); 
}; 

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); 

回答

3

例如printf("%d", yawSensitivity)

您的代碼表現出未定義的行爲。 yawSensitivity類型爲float。格式說明符%d需要int類型的參數。改爲使用%f

+1

要添加到伊戈爾的答案,構造函數可能初始化很好,但濫用'printf()'已經導致提問者對他的代碼作出不正確的假設。如有疑問,請使用調試器進行檢查。 – nhgrif

+0

是的,謝謝。愚蠢的錯誤,我想我需要一些睡眠... –